1. 定义配置类
1.1 代码示例
public class Hello {
public void saySomething() {
System.out.println("hello word!");
}
}
@Configuration
public class JavaConfig {
@Bean
Hello sayHello() {
return new Hello();
}
}
1.2 配置类说明
首先在配置类上有一个@Configuration
注解,这个注解表示这个类不是一个普通类,而是一个配置类,它的作用相当于 applicationContext.xml
。
然后,定义方法,方法返回对象,方法上添加 @Bean
注解,表示将这个方法的返回值注入的 Spring 容器中去。也就是说,@Bean 所对应的方法,就相当于applicationContext.xml 中的 <bean/>
标签
2. 加载配置类
2.1 代码示例
public class Main {
public static void main(String[] args) {
// 加载Java配置类JavaConfig.class中定义的Bean:Spring容器会自动加载并管理配置类中定义的Bean
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
// 从Spring容器中获取对象
Hello hello = context.getBean("sayHello", Hello.class);
// 使用Spring容器中管理的对象
hello.saySomething();
}
}
2.2 配置类加载说明
首先我们在配置类中使用了注解来标注返回Bean实例的方法,所以这里我们需要使用AnnotationConfigApplicationContext
来获取Spring容器,并加载配置类JavaConfig.class
。这样的话Spring容器就会将我们定义在Java配置类中的实例全部加载到Spring容器中管理。之后,我们直接使用Spring容器的getBean
方法来获取具体的实例。