JavaConfig 原来是 Spring 的一个子项目,它通过 Java 类的方式提供 Bean 的定义信息,在 Spring4 的 版本, JavaConfig 已正式成为 Spring4 的核心功能 。
测试:
1. 编写一个实体类,Dog
@Component
public class Dog {
public String name = "Tom";
}
2. 新建一个config配置包,编写一个MyConfig配置类
// 这个也会Spring容器托管,注册到容器中,因为他本来就是一个@Component
// @Configuration代表这是一个配置类,就和我们之前看的beans.xml
@Configuration
@ComponentScan("com.loey")
//导入合并其他配置类,类似于配置文件中的 inculde 标签
@Import(MyConfig2.class)
public class MyConfig {
//注册一个bean , 就相当于我们之前写的一个bean标签
//这个方法的名字,就相当于bean标签中的id属性
//这个方法的返回值,就相当于bean标签中的class属性
@Bean
public Dog getDog(){
return new Dog();
}
}
3. 测试
@Test
public void test(){
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);
Dog dog = applicationContext.getBean("getDog", Dog.class);
System.out.println(dog.name);
}
导入其他配置如何做呢?
- 我们再编写一个配置类!
- 在之前的配置类中我们来选择导入这个配置类
// 这个也会Spring容器托管,注册到容器中,因为他本来就是一个@Component
// @Configuration代表这是一个配置类,就和我们之前看的beans.xml
@Configuration
//导入合并其他配置类,类似于配置文件中的 inculde 标签
@Import(MyConfig2.class)
public class MyConfig {
//注册一个bean , 就相当于我们之前写的一个bean标签
//这个方法的名字,就相当于bean标签中的id属性
//这个方法的返回值,就相当于bean标签中的class属性
@Bean
public Dog getDog(){
return new Dog();
}
}
关于这种Java类的配置方式,我们在之后的SpringBoot 和 SpringCloud中还会大量看到,我们需要知道 这些注解的作用即可!