一、什么是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在初始化后进行自营一加工