spring注解@Configuration,@Value,@Bean实例

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文件配置如下



	
	
	
	

测试文件

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)