為什么選擇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");
}
}