为什么选择Groovy?
传统的依赖注入是XML,对我而言,可读性太差,太不美观,强烈地想换一个方式进行依赖注入,Groovy作为XML的替代方案,在Spring4之后被引入,是基于JVM的一门方言,具有较强的可读性,写更少的更易懂的脚本,完成同样的功能。
基于Spring boot框架
我选择了Spring boot框架作为MVC,看重了它的惯例大于配置,不用繁琐地配置。
以下代码是伪代码,只是大概说明使用的方式
Application.java
1 2 3 4 5 6 7 8 9 10
| @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
1 2 3 4 5
| beans { userService(UserMockService) { parameter = "你能在这初始化参数" } }
|
在groovy配置文件里能声明要注入的beans,可以配置初始化时的参数值,这里就是声明一个userService
,它的实现是UserMockService
。
UserController.java
1 2 3 4 5 6 7 8 9
| @Controller class UserController { @Autowired private UserService userService;
public User getUserAction(Long userId) { return userService.findByUserId(userId); } }
|
User.java
1 2 3 4 5 6
| class User { String name; public User(String name) { this.name = name; } }
|
UserService.java
1 2 3
| interface UserService { User findByUserId(Long userId); }
|
UserMockService.java
1 2 3 4 5 6 7 8 9 10 11
| 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>