spring注解@Configuration,@Value,@Bean实例
2014-07-29 13:34
393 查看
spring 3.0中增加了@Configuration,@Value,@Bean以下做了一个简单的例子
@Configuration:可以通过Java文件取代xml文件的Bean配置
@Value:读取xxx.properties进Java文件进行键值对的注入
@Bean:@Configuration进行实例化Bean。name:指定bean名字
@Configuration代码如下
xml文件配置如下
测试文件
测试结果
@Configuration:可以通过Java文件取代xml文件的Bean配置
@Value:读取xxx.properties进Java文件进行键值对的注入
@Bean:@Configuration进行实例化Bean。name:指定bean名字
@Configuration代码如下
package guoguo.spring.config; import guoguo.spring.config.impl.WorkerImpl; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { private @Value("#{jdbcProperties.url}") String jdbcUrl; private @Value("#{jdbcProperties.username}") String username; private @Value("#{jdbcProperties.password}") String password; @Bean(name = "worker") public Worker getWorker() { return new WorkerImpl(); } //测试键值注入 public String getJdbcUrl() { return jdbcUrl; } public String getUsername() { return username; } public String getPassword() { return password; } }
xml文件配置如下
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <util:properties id="jdbcProperties" location="resources/env/jdbc.properties"></util:properties> <context:component-scan base-package="guoguo.spring"/> </beans>
测试文件
package guoguo.spring.config; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestAppConfig { @Test public void setUp() throws Exception { ApplicationContext context = new ClassPathXmlApplicationContext(getContext()); //设置服务对应业务的配置文件部分 //AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); AppConfig appConfig = context.getBean(AppConfig.class); System.out.println("jdbcUrl [" + appConfig.getJdbcUrl() + "]"); System.out.println("username [" + appConfig.getUsername() + "]"); Worker worker = context.getBean("worker", Worker.class); System.out.println(worker.doWork()); } public String[] getContext() { return new String[] {"classpath*:resources/context.xml"}; } }
测试结果
jdbcUrl [1234123] username [1231231] this is worker impl
相关文章推荐
- Spring代码实例系列-05:通过注解@Configuration、@Bean和@Import定义bean
- [转]Spring注解-@Configuration注解、@Bean注解以及配置自动扫描、bean作用域
- Spring整理系列(11)——@Configuration注解、@Bean注解以及配置自动扫描、bean作用域 发表于2016/8/11 15:16:16 10628人阅读 分类: Spring
- spring系列之@Configuration注解、@Bean注解以及自动扫描注解@componentScan
- Spring整理系列 - @Configuration注解、@Bean注解以及配置自动扫描、bean作用域
- Spring基于注解的方式配置bean的实例
- 先码后看 spring配置bean的几种方式:xml直接配置、静态工厂、实例工厂、factory bean、注解 侵立删
- Java之Spring注解配置bean实例代码解析
- S2SH框架中,Spring通过注解获取bean实例
- Spring注解-@Configuration注解、@Bean注解以及配置自动扫描、bean作用域
- Spring代码实例系列-06:通过注解@Component、@Controller、@Service和@Repository定义bean,@Autowire装配bean
- Spring 标签 @Configuration注解、@Bean注解以及配置自动扫描、bean作用域
- spring使用注解让bean创建多个实例
- 获取Spring加载的实例bean/获取注解Beam
- Spring注解-@Configuration注解、@Bean注解以及配置自动扫描、bean作用域
- Spring启动后获取所有拥有特定注解的Bean实例代码
- Spring学习(14)--- 基于Java类的配置Bean 之 @ImportResource & @Value 注解
- Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(四)
- Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(三)
- spring2.5.6学习笔记五:Spring的三种实例化Bean的方式