跳到主要内容

Spring5中文文档【9】IOC容器之基于 Java 的容器配置

前言

本系列基于最新5.3.10版本,大部分内容copy于官方文档…
官方文档地址

之前介绍了如何使用XML及注解的方式配置容器,接下来介绍使用Java 代码中来配置Spring 容器。

1. @Bean和@Configuration注解

Spring 基于Java 配置支持的核心注解是 @Configuration(类级别)和@Bean(方法级别)。

@Bean注解标识于方法返回一个实例,并初始化到Spring IoC容器进行管理。@Bean注解扮演着与<bean/>标签相同的角色。可以将@Bean与 Spring 中@Component注解一起使用 。但是一般与@Configuration一起使用。

被@Configuration标识的类表明它的主要目的是作为 bean 定义的来源。最简单的@Configuration类如下:

@Configuration
public class AppConfig {



@Bean
public MyService myService() {


return new MyServiceImpl();
}
}

前面的AppConfig类等效于以下 Spring XML <beans/>

<beans>
<bean id="myService" class="com.acme.services.MyServiceImpl"/>
</beans>

2. 使用AnnotationConfigApplicationContext实例化 Spring 容器

Spring 3.0 中引入AnnotationConfigApplicationContext容器,这种通用的ApplicationContext实现不仅能够接受@Configuration类作为输入,还能够接受@Component类和用 JSR-330 元数据注解的类。

当提供@Configuration类作为输入时,@Configuration类本身被注册为 bean 定义,并且@Bean类中方法声明的类也被注册为 bean 定义。