基本概念:@Bean 和 @Configuration
@Bean and @Configuration
Spring在Java配置支持中的核心组件是带有@Configuration注解的类和带有@Bean注解的方法。
@Bean 注解用于指示一个方法实例化、配置并初始化一个将由 Spring IoC 容器管理的新对象。对于熟悉 Spring 的 <beans/> XML 配置的人来说,@Bean 注解的作用与 <bean/> 元素相同。你可以将带有 @Bean 注解的方法与任何 Spring 的 @Component 一起使用。不过,它们最常与 @Configuration 类型的 Bean 一起使用。
使用@Configuration注解标注一个类,表示该类的主要用途是作为bean定义的来源。此外,@Configuration类可以通过在同一类中调用其他@Bean方法来定义bean之间的依赖关系。最简单的@Configuration类如下所示:
- Java
- Kotlin
@Configuration
public class AppConfig {
@Bean
public MyServiceImpl myService() {
return new MyServiceImpl();
}
}
@Configuration
class AppConfig {
@Bean
fun myService(): MyServiceImpl {
return MyServiceImpl()
}
}
前面的 AppConfig 类相当于以下 Spring 的 <beans/> XML:
<beans>
<bean id="myService" class="com.acme.services.MyServiceImpl"/>
</beans>
@Bean和@Configuration注解在接下来的章节中会有深入的讨论。然而,首先我们会介绍使用基于Java的配置来创建Spring容器的各种方法。