Spring-Aware接口和其它面试问题

Aware接口

  • BeanNameAware
  • BeanFactoryAware
  • ApplicationContextAware

BeanFactory和FactoryBean的区别

  • BeanFactory:工厂,是ioc容器的基础,可以管理和创建任意类型的对象;
  • FactoryBean:特殊的bean,存在于ioc容器中,也就是存在于BeanFactory。FactoryBean只能针对某一类bean进行存储。
  • 通过BeanFactory去管理的bean实例,都需要在xml中或者注解方式进行配置;
  • 如果一个bean装配过程特别复杂,那么xml配置可能很复杂,对于这种情况,spring提供了一个专门针对复杂的bean进行生产的对象,就是FactoryBean,FactoryBean只能针对某一类bean进行创建;
  • BeanFactory可以创建任意对象

BeanFactoryPostProcessor和BeanPostProcessor的区别

  • BeanFactoryPostProcessor:执行时机,在BeanDefinition未被用来创建之前,可以针对BeanDefinition进行修改,比如PropertyPlaceholderConfigurer(context:property-placeholder),就是实现了BeanFactoryPostProcessor,那么该类就对BeanDefinition进行了修改,具体的修改:判断BeanDefinition中的属性值是否带有${},如果带有,则根据其他的key获取properties配置文件中的value值,进行替换;
  • BeanPostProcessor:执行时机,在bean已经被创建完成属性填充,在bean初始化的时候被调用。初始化之前和初始化之后。比如AbstractAspectJAutoProxyCreator就实现了BeanPostProcessor,它的作用就是对已经创建的bean进行aop切面操作。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值