自从Spring Boot出来以后,我们的配置文件几乎很少使用,因为我们基本上都会使用基于Java注解的配置方式,实际上,很多的框架,现在都支持使用使用注解来配置,如Servlet3.0。
实际上,我们的Spring2.5开始就支持注解的方式了,Spring4就更加不必要说了。
下面我们就来看看,Spring4是怎么不依赖于XML吧
首先我们定义一个接口
public interface CompactDisk {
void play();
}
然后我们写他的实现类
//使用这个声明他是其他bean的组件,而且他是是一个bean,而且他会赋予bean一个默认的id(类名第一个字小写)
//也可以不默认,指定id值
//我们也可以使用@Name(),同时传入一个id作为这个bean的标识,
@Component
public class CompactDiskImpl implements CompactDisk {
public void play() {
System.out.println("cd is playing");
}
}
上面的@Component注解的功能,告诉Spring这是一个组件,并在扫描后创建这个类Bean默认的id(类型第一个字母小写)
然后我们要告诉Spring扫描这组件。
@Configuration //声明他是一个配置类。
@ComponentScan //声明它它就回扫描这这个类所在包,和这个包所有子包的有@component注解的类
public class CDConfig {
}
上面的@Component 默认是扫描这个类所在包中有以及这个包下所有子包邮@Bean或@Component
// 这个注解是告诉Junit,运行的时候加载spring的上下文
@RunWith(SpringJUnit4ClassRunner.class)
//这里告诉Spring,启动Spring上下文的时候扫描相应的配置,并把相应的bean放入容器
@ContextConfiguration(classes = CDConfig.class)
public class Test {
@Autowired
private CompactDisk compactDisk;
@org.junit.Test
public void test(){
compactDisk.play();
}
}