FactoryBean ApplicatinContext BeanPostProcessor的作用

一、什么是FactoryBean

1、FactoryBean是Spring所提供的一种较灵活的创建Bean的方式,可以 通过实现FactoryBean接口中的getObject()方法来返回一个对象,这个对象就是最终的Bean对象

2、FactoryBean接口中的方法 Object getObject();返回Bean对象 Boolean isSingleton();返回是否是单例Bean对象 Class getObjectType();返回的是Bean对象的类型

@Component("xiaoxiong")
public class XiaoxiongFactoryBean implements FactoryBean {
          
   
    @Override
    public Object getObject() throws Exception {
          
   
        return  new User();
    }

    @Override
    public Class<?> getObjectType() {
          
   
        return User.class;
    }

    @Override
    public boolean isSingleton() {
          
   
        return false;
    }
}

二、ApplicatinContext是什么

1、ApplicationContext比BeanFactory更加强大的Spring容器,它既可以创建Bnan、获取Bean、还支持国际化、事件广播、获取资源等BeanFactorr不具备的功能

2、ApplicatinContext继承的接口: EnvironmentCapable 用来获取环境变量的功能,通过ApplicatinContext获取操作系统的环境变量和JVM环境变量

ListableBeanFactory 用来获取所有beanNames、判断某个beanName是否存在beanDefinition对象、统计BeanDefinition个数、获取某个类型对应所有beanNames等功能

HierarchicalBeanFactory 用来获取父beanFactory、判断某个name是否存在bean对象的功能

MeaasgeSource 用来国际化功能、比如可以直接用MessageSource对象获取某个国际化资源(比如不同国家语言对应的字符)

ApplicationEventPublisher 用来事件发布功能、可以发布事件、这是ApplicatinContext相对BeanFactory比较突出的作用功能

ResourcePattenResolver 用来加载并获取资源的功能、这里的资源可以是文件、图片等某个URL资源都可以

三、什么是BeanPostProcessor

1、BeanPostProcessor是Spring所提供的一种扩展机制,可以利用BeanPostProcessor 对Bean进行定制化加工吗,在Spring底层源码实现中,也广泛的应用到了该机制,BeanPostProcessor通常也叫做Bean后置处理器

2、BeanPostProcessor在Spring中是一个接口,我们定义一个后置处理器,就是提供一个类实现该接口,在Spring中还存在一些接口继承了BeanPostProcessor,这些子接口都是在BeanPostProcessor的基础上增加了一些其他功能

3、BeanPostProcessor中的方法

psotProcessorBeforeInitialization(); 初始化前方法,表示可以利用这个方法来对Bean在初始化前进行自定义加工 psotProcessorAfterInitialization(); 初始化后方法,表示可以利用这个方法对Bean在初始化后进行自营一加工

经验分享 程序员 微信小程序 职场和发展