Spring 4bean的装配

1 默认装配方式
调用bean类的无参构造,创建空值实例对象,故一般bean类写有参构造时需要写一个无参构造

2 动态工厂Bean
工厂类里方法返回bean

3 静态工厂Bean
方法用static修饰

4 bean的作用域
scope=“singleton”单例模式(默认,初始化时创建bean)
scope=“prototype”原型模式(使用时创建bean)
web应用中:
request:每次http请求产生一个bean
session:
global session:每个全局的http session产生一个bean,仅在集群中不同于session,多个web应用共享一个session。

5 Bean后处理器
一种特殊的bean
需要自定义类实现接口BeanPostProcessor,该接口中包含两个方法分别在bean初始化完毕之前与之后执行(类似拦截器),返回功能变动后bean对象
l类似拦截器,在bean初始化前后做什么
方法一:postProcessBeforeInitialization
方法二:postProcessAfterInitialization

Proxy代理进行增强bean,处理返回bean

6 定制bean的生命始末
init-method = “”
destroy-method = “”

关闭容器才能看到销毁,ApplicationContext接口容器没有关闭方法,
但其实现类ClassPathXmlApplicationContext有
销毁方法的执行条件:bean需要是singleton的;手工关闭容器close

7 bean的生命周期

 (1)调用无参构造器,创建实例对象(构造方法)
 (2)调用参数的setter,为属性注入值(属性<property>)
 (3)若bean实现了BeanNameAware接口,则会执行接口方法setBeanName(String beanId),使Bean类可以获取其在容器中的id的名称
 (4)若Bean实现了BeanFactoryAware接口,则执行接口方法setBeanFactory(BeanFactory factory),使Bean类可以获取到BeanFactory对象
 (5)若定义并注册了bean后处理器beanPostProcessor,则执行接口方法postProcessBeforeInitialization.
 (6)若Bean实现了InitializingBean接口,则执行接口方法afterPropertiesSet()。该方法在Bean的所有属性的set方法执行完毕后执行,是bean初始化结束的标志,即bean实例化结束
 (7)若设置了init-method方法,则执行。
 (8)若定义并注册了bean后处理器beanPostProcessor,则执行接口方法postProcessAfterInitialization
 (9)执行业务方法
 (10)若bean实现了DisposableBean接口,则执行接口方法destroy
 (11)若设置了destroy-method方法,则执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值