1.9 基于注解的容器配置

1.9 基于注解的容器配置 #

Version 5.2.2.RELEASE


1.9.1 @Required #

1.9.2 使用@Autowired #

1.9.3 使用@Primary微调基于注解的自动装配 #

1.9.4 使用限定符微调基于注解的自动装配 #

@Autowired

=== 使用@PostConstruct@PreDestroy
dependencies {
    annotationProcessor "org.springframework:spring-context-indexer:{spring-version}"
}
== 使用JSR 330标准注解
== 基于Java的容器配置

本节介绍如何在Java代码中使用注解来配置Spring容器。它包括以下主题:

=== 基本概念:@Bean@Configuration
=== 使用AnnotationConfigApplicationContext实例化Spring容器
=== @Bean注解使用
==== 接收生命周期回调
=== @Configuration注解使用
=== 组合基于Java的配置

==== XML Bean定义概要文件

=== bean定义配置
=== PropertySource抽象

最重要的是,

=== 使用@PropertySource
=== 语句中的占位符解析
=== Web应用简单的ApplicationContext实例化
==  BeanFactory

BeanFactory API为Spring的IoC功能提供了基础。它特定的约定主要用于与Spring的其他部分和相关第三方框架集成,其DefaultListableBeanFactory实现是更高级别的GenericaApplicationContext容器中的一个关键代表。

BeanFactory和相关接口(如BeanFactoryAwareInitializingBeanDisposableBean)是其他框架组件的重要集成点。通过不需要任何注解甚至反射,它们允许容器及其组件之间进行非常有效的交互。应用级的bean可以使用相同的回调接口,但通常更喜欢声明式地依赖项注入,要么通过注解,要么通过编程配置。

请注意,核心BeanFactory API级别及其DefaultListableBeanFactory实现不对要使用的配置格式或任何组件注释进行假设。所有这些风格都是通过扩展(如XmlBeanDefinitionReaderAutowiredNotationBeanPostProcessor)引入的,并作为核心元数据表示在共享BeanDefinition对象上操作。这就是Spring容器如此灵活和可扩展的本质所在。

=== BeanFactory还是ApplicationContext

本节讲解BeanFactoryApplicationContext容器级别之间的差异以及对引导的影响。

除非有充分的理由,否则你应该使用ApplicationContext,将GenericaApplicationContext及其子类AnnotationConfigApplicationContext作为自定义引导的常见实现。这些是Spring核心容器的主要切入点,用于所有常见目的:加载配置文件、触发类路径扫描、以编程方式注册bean定义和注解类,以及(从5.0开始)注册函数bean定义。

= 资源
== 应用上下文与资源路径
=== 使用AspectJ向Spring注入依赖域对象

Ant风格

=== ConversionService接口
除了标准的关系运算符,

==== 组合切入点表达式

== 代理机制

=== 理解AOP代理

=== 基础
== XML Schemas