您的位置:首页 > 编程语言 > Java开发

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代码如下

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐