众所周知:Spring 刚开始的时候支持XML配置的方式获取Bean实例,到后来开始支持注解的
方式配置,在3.0 的时候支持了类注解方式。使用了Spring旗下的JavaConfig项目。
package org.spring.core.test;
public class Boss
{
private String name;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Boss()
{
}
}
在该例子中,我写了一个JavaBean。我不在Spring的xml配置它,也不使用常用的注解。
在这里来看看使用类注解如何配置:
package org.spring.core.test;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Beans
{
@Bean(name = "boss")
public Boss genBoss()
{
Boss boss = new Boss();
boss.setName("boblee");
return boss;
}
}
该类就是类注解的方式。使用@Configuration注解声明。@Bean(name = "boss") 表示当getBean的时候使用boss
这个名称。
package org.spring.core.test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
public class SpringTest
{
@Test
public void test()
{
ApplicationContext ctx = new AnnotationConfigApplicationContext(Beans.class);
Boss boss = ctx.getBean("boss", Boss.class);
assertEquals(boss.getName(), "boblee");
}
}
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
public class SpringTest
{
@Test
public void test()
{
ApplicationContext ctx = new AnnotationConfigApplicationContext(Beans.class);
Boss boss = ctx.getBean("boss", Boss.class);
assertEquals(boss.getName(), "boblee");
}
}
这个时候就可以看到Junit的状态为绿色了。注意关键的部分,有事回家了,不写了!!
如果报错根据相关提示引用相关的包.
http://five.iteye.com/blog/1750548