码迷,mamicode.com
首页 > 编程语言 > 详细

spring主要接口介绍以及bean生命周期简介

时间:2020-10-05 22:21:10      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:工厂   包含   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生命周期简介

技术图片

 

spring主要接口介绍以及bean生命周期简介

标签:工厂   包含   servlet   size   参数   抽象类   接口   手动   font   

原文地址:https://www.cnblogs.com/katsu2017/p/13031201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!