前言
这里只讲一些比较常用的组件,(注解与类),大致可以分为三类,配置组件、赋值组件、织入组件。
配置组件
注解名称 | 说明 |
@Configuration | 把一个类作为IoC容器,它的某个方法上如果注册了Bean,就会作为这个Spring容器中的bean。 |
@ComponentScan | 可以在配置类中添加该注解,该注解默认会扫描该类所在的包下所有的配置类,相当于xml中的context:component-scan |
@Scope | 用于知道scope作用域的,用在类上 |
@Conditional | Spring4开始提供,它的作用是按照一定的条件进行判断,满足条件给容器注册Bean |
@Lazy | 表示延迟初始化 |
@Import | 导入外部资源 |
生命周期控制 | @PostConstruct用于指定初始化方法(用在方法上) @PreDestory用于指定销毁方法(用在方法上) @DependsOn:定义Bean初始化及销毁时的顺序 |
赋值组件
注解名称 | 说明 |
@Component | 泛指组件、当组件不好归类的时候,可以直接使用这个注解进行标注 |
@Service | 用于标注业务层组件 |
@Controller | 用于标注控制层组件 |
@Repository | 用于标注数据访问组件、即DAO组件 |
@Value | 普通数据类型赋值 |
@Autowired | 默认按类型配置、如果我们想使用按名称配置、可以结合@Qualifier注解一起使用 |
@PropertySource | 读取配置文件赋值 |
@Qualifier | 如存在多个实例配合使用 |
@Primary | 自动装配时当出现多个Bean候选者时,被注解为@Primary的bean将作为候选者,否则将抛出异常。 |
@Resource | 默认按名称装配、当找不到与名称匹配额Bean才会按类型匹配 |
织入组件
类名称 | 说明 |
---|---|
ApplicationContextAware | 可以通过这个上下文环境对象得到Spring容器中的Bean |
BeanDefinitionRegistryPostProcessor | BeanDefinitionRegistryPostProcessor实现类BeanFactoryPostProcessor接口,是Spring框架的BeanDefinitionRegistry的后处理器,用来注册额外的BeanDefinition |