使用Groovy進行依賴注入


為什么選擇Groovy?

傳統的依賴注入是XML,對我而言,可讀性太差,太不美觀,強烈地想換一個方式進行依賴注入,Groovy作為XML的替代方案,在Spring4之后被引入,是基於JVM的一門方言,具有較強的可讀性,寫更少的更易懂的腳本,完成同樣的功能。

基於Spring boot框架

我選擇了Spring boot框架作為MVC,看重了它的慣例大於配置,不用繁瑣地配置。

以下代碼是偽代碼,只是大概說明使用的方式

Application.java

@SpringBootApplication
class Application {
  public static void main(String[] args) {
    Object[] sources = new Object[]{ Application.class, new ClassPathResource("application_context.groovy") };
    SpringApplication.run(sources, args);
  }
}

在Application啟動的時候讀入該腳本,解析出錯會拋出異常。

src/main/resources/application_context.groovy

beans {
  userService(UserMockService) {
    parameter = "你能在這初始化參數"
  }
}

在groovy配置文件里能聲明要注入的beans,可以配置初始化時的參數值,這里就是聲明一個userService,它的實現是UserMockService

UserController.java

@Controller
class UserController {
  @Autowired
  private UserService userService;

  public User getUserAction(Long userId) {
    return userService.findByUserId(userId);
  }
}

User.java

class User {
  String name;
  public User(String name) {
    this.name = name;
  }
}

UserService.java

interface UserService {
  User findByUserId(Long userId);
}

UserMockService.java

class UserMockService implements UserService {
  private String parameter;
  
  public String getParameter() { return parameter; }
  public void setParameter(String parameter) {
    this.parameter = parameter;
  }
  public User findByUserId(Long userId) {
    return new User("mockUser");
  }
}

參考資料

< fuck>XML< /fuck>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM