基于注解的容器配置
注解配置的另一种选择是依赖于字节码元数据来连接组件,而不是XML声明。开发人员将配置移入组件类本身,通过在相关类、方法或字段声明上使用注解,而不是使用XML来描述bean的连接。正如在 示例: AutowiredAnnotationBeanPostProcessor
中所述,与注解一起使用 BeanPostProcessor
是扩展Spring IoC容器的常见手段。例如,@Autowired
注解提供了与 自动装配协作者 中描述的相同功能,但具有更精细的控制和更广泛的适用性。此外,Spring支持JSR-250注解,如 @PostConstruct
和 @PreDestroy
,以及支持包含在 jakarta.inject
包中的JSR-330(Java依赖注入)注解,如 @Inject
和 @Named
。有关这些注解的详细信息,请参阅 相关部分。
注解注入在XML注入之前执行。因此,XML配置将覆盖通过这两种方式连接的属性的注解。 |
您始终可以将后处理器注册为单独的bean定义,但也可以通过在基于XML的Spring配置中包含以下标记来隐式注册它们(注意包含 context
命名空间):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
</beans>
<context:annotation-config/>
元素隐式注册以下后处理器:
|