在Spring中使用@Configuration注解加载JavaConfig配置-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

在Spring中使用@Configuration注解加载JavaConfig配置

简介:

如题所示,从一些翻译至国外的书籍中可以看到,一些西方人喜欢使用没有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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: