spring5注解编程基础组件(三)

一、配置组件

  • @Configuration

把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean,
默认是类名首字母小写
其次就是取方法名称
最后优先取Bean注解的Value

  • @ComponentScan

在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的context:component-scan
可以添加参数筛选需要注入bean的规则,includeFilters,自己写Filter,需要实现TypeFilter接口,重写里面的帅选规则即可,
重写方法参数含义:
metadataReader 当前正在操作类的信息
metadataReaderFactory:获取上下文中所有的信息

  • @Scope

用于指定scope作用域的(用在类上)
prototype:原型,多例
singleton:单例
request:主要应用于web模块,同一次请求只创建一个实例
session:主要应用于web模块,同一个session只创建一个对象

  • @Lazy

表示延迟初始化
默认是非延迟加载
延时加载,懒加载只针对单例Bean起作用
启动懒加载,默认容器启动时不创建对象,调用对象的的功能的时候才创建

  • @Conditional
    ng4开始提供,它的作用是按照一定的条件进行判断,满足条件给容器注册Bean
    在Spring的Bean上使用,自定义实现Condition接口,根据需求重写matches方法,

  • @Import

导入外部资源
快速给容器导入Bean的方式
直接参数导入
实现ImportSelector接口自定义规则
实现ImportBeanDefinitionRegistrar,获得BeanDefinitionRegistry手动直接往IoC容器中放
创建自己的FactoryBean,需实现FactoryBean<要创建的对象类>接口,并重写起方法,把需要注册的对象封装为FactoryBean,获取FactoryBean时,在类名称前面加上&符号
FactoryBean,创建Bean,将Bean放入IoC容器
BeanFactory,从容器中获取Bean

  • 生命周期控制

@PostConstruct 用于指定初始化方法(用在方法上)
@PreDestory 用于指定销毁方法(用在方法上)
@DependsOn 定义Bean初始化以及销毁时的顺序
@Bean 配置参数,如:@Bean(initMethod = “你的初始化方法”,destroyMethod = “你的销毁方法”)
分别实现InitializingBean和DisposableBean接口,重写其方法
自己写一个类,实现BeanPostProcessor接口,覆盖父类的方法,放入自己的逻辑即可,更加强大,可以监控到所有Bean

二、赋值(自动装配)组件

  • @Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注

  • @Service

用于标注业务组件

  • @Controller

用于标注控制层组件

  • @Repository

用于标注数据访问组件,即DAO组件

  • @Value

普通数据类型赋值
支持基本类型
支持Spring的EL表达式,可结合@PropertySource使用

  • @Autowired

默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用

  • @PropertySource

读取配置文件赋值

  • @Qualifier

如存在多个实例配合使用
优先级高于Autowired

  • @Primary

自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常

  • @Resource

默认按名称装配,当找不到与名称匹配的bean才会按类型装配
优先级更高,可以拿到更多的环境信息

三、织入组件

  • ApplicationContextAware

可以通过这个上下文环境对象得到Spring容器中的Bean

  • BeanDefinitionRegistryPostProcessor

BeanDefinitionRegistryPostProcessor实现了BeanFactoryPostProcessor接口,是Spring框架的BeanDefinitionRegistry的后处理器,用来注册额外的BeanDefinition

四、切面组件

  • @EnableTransactionManagement

添加对事务管理的支持

  • @Transactional

配置声明式事务信息

spring5注解编程基础组件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值