如题所示,从一些翻译至国外的书籍中可以看到,一些西方人喜欢使用没有XML文件的纯粹的JavaConfig配置。但是一方面在国内我们通常都习惯使用XML文件来配置SpringMVC、Ehcache、Shiro等组件的具体参数配置,另一方面我个人认为适当使用基于XML文件的配置是可以有效减少配置文件的代码量的。因此,如果想要在项目中加载一部分的JavaConfig应该如何做呢?
(1)新建一个测试用例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package
cn.zifangsky.config;
import
org.springframework.beans.factory.annotation.Autowire;
import
org.springframework.context.annotation.Bean;
import
org.springframework.context.annotation.Configuration;
import
cn.zifangsky.model.User;
@Configuration
public
class
UserConfig {
@Bean
(autowire=Autowire.BY_NAME,name=
"u"
)
public
User user(){
return
new
User(
"root"
,
"123456"
);
}
}
|
这里使用了@Configuration注解表明这个类是一个配置类,同时使用了@Bean定义了一个名为“u”的User类型的bean
(2)在Spring的配置文件中添加需要自动扫描这个包中的注解:
1
|
<
context:component-scan
base-package
=
"cn.zifangsky.config"
/>
|
这里也就是“cn.zifangsky.config”这个包
(3)测试Controller:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package
cn.zifangsky.controller;
import
javax.annotation.Resource;
import
org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.RequestMapping;
import
cn.zifangsky.model.User;
@Controller
public
class
TestController {
@Resource
(name=
"u"
)
User user;
@RequestMapping
(
"/test.html"
)
public
void
test(){
System.out.println(
"测试name:"
+ user.getName());
}
}
|
可以看到,这里使用的@Resource注解按名字“u”注入了之前定义好的bean
(4)测试:
启动项目后访问:http://localhost:8080/Demo/test.html
控制台输出如下:
1
|
测试name:root
|
本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1889610,如需转载请自行联系原作者