记录跟着狂神学Spring的历程(第15集)~
1. new一个配置类
- @Configuration代表了这是一个配置类,相当于之前的xml文件。这个类的底层实现原理包含了
@Component,所以这个类也会被Spring容器托管。 - @ComponentScan("com.pojo") 等价于
<context:component-scan base-package="com.pojo"/>,指定要扫描的包,这个包下的注解就会生效。 - @Bean 等价于原来xml文件中的bean标签。这个方法的名字相当于bean的id属性,返回值相当于bean标签的class属性。
- @Import 相当于xml的import标签,引入另一个配置类里的所有bean
@Configuration
@ComponentScan("com.pojo")
@Import(MyConfig2.class)
public class MyConfig{
@Bean
public User getUser(){
return new User();
}
}
2. 测试
如果完全使用了注解的方式去做,就只能通过AnnotationConfigApplicationContext上下文来获取容器。
@Test
public void test(){
ApplicationContext context =
new AnnotationConfigApplicationContext(MyConfig.class) //配置类的类名
User user = (User)context.getBean("getUser");
System.out.println(user.getName());
}
这种纯Java的配置模式,在SpringBoot中随处可见。