标签:工厂 包含 servlet size 参数 抽象类 接口 手动 font
一. spring部分接口简介
BeanFactory: bean工厂,访问spring bean容器的根接口,bean容器的基本客户端视图;
主要提供了获取bean以及判断是否为为单例,是否包含指定bean等方法;
常见的字接口有ListableBeanFactory,ConfigurableBeanFactory;
ResourceLoader 类资源加载器,用于加载classpath路径或文件系统资源
子接口ResourcePatternResolver被ApplicationContext继承
提供了基本实现类:DefaultResourceLoader
Environment:运行application的环境,为应用在2个关键方面建模:profiles和properties
profile:指定当前是dev,test,prod等环境中的某一个
properties:各种属性配置,如:属性文件,JVM系统属性,系统环境变量,JNDI,Servlet上下文参数,临时属性对象,映射等
提供了AbstractEnvironment模版方法类和StandardEnvironment实现类
ApplicationContext:应用上下文(“其实现类是一个完整的,可使用的spring环境”),为context提供配置的中心接口;
继承ListableBeanFactory, HierarchicalBeanFactory提供beanfactory的功能
继承ResourceLoader提供资源加载功能
继承ApplicationEventPublisher提供事件发布监听功能
继承MessageSource提供i18n国际化功能
继承EnvironmentCapable提供基础环境功能(如:properties,系统等基本信息)
常用的模版方法模式实现类是AbstractApplicationContext
常用实现类:ClassPathXmlApplicationContext,AnnotationConfigApplicationContext,AnnotationConfigServletWebServerApplicationContext, XmlServletWebServerApplicationContext等
BeanDefinition:bean定义,表述bean实例,封装了操作bean基本属性的方法(
允许PropertyPlaceholderConfigurer对其进行自定义
模版方法类:AbstractBeanDefinition封装了bean的基本属性,用于继承;如:beanClass,beanName,scope,lazy,dependson,factoryBeanName,initMethodName,destroyMethodName等
主要实现类:RootBeanDefinition和GenericBeanDefinition(一般用这个定义一个普通的bean定义)
FactoryBean: 工厂bean,用于暴露bena的工厂,提供getObject获取具体bean
相比于普通bean,实现了该接口可用于自定bean,常用于框架底层
如果有个FactoryBean叫myFB, 那么ApplicationContext.getBean("&myFB")返回FactoryBean的实例(如果需要目标bean,需要手动调用getObject(),BeanFatory.getBean("myFB")返回FactoryBean包装的bean的实例(相当于自动调用了getObject()方法)
BeanFactoryPostProcessor:bean工厂后置处理器,用于自定义BeanDefinition
作用于BeanDefinition生成之后,实例化bean之前,不能作用于已实例的bean
典型的应用("${xxx}")占位符,对应PlaceholderConfigurerSupport抽象类
BeanPostProcessor:bean后置处理器,允许自定义bean,作用于bean实力化前后;
方法postProcessBeforeInitialization(作用于bean构造方法调用之后,初始化等方法调用之前,但bean属性已经填充)
方法postProcessAfterInitialization(作用于初始化方法之后),典型应用动态代理(Aop的实现方式)即通过该方法实现
典型应用:ioc的@Autowired和@Value注解,对应实现类AutowiredAnnotationBeanPostProcessor
二. spring bean生命周期简介
标签:工厂 包含 servlet size 参数 抽象类 接口 手动 font
原文地址:https://www.cnblogs.com/katsu2017/p/13031201.html