bean的生命周期,注入方式,作用域

bean的生命周期

默认情况下,IOC容器中bean的生命周期分为五个阶段:

  1. 调用构造器或者通过工厂的方式创建Bean对象
  2. 给bean对象的属性注入值
  3. 调用初始化方法,进行初始化,初始化方法是通过init-method来指定的
  4. 使用bean
  5. IOC容器关闭时,销毁Bean对象

 当加入了Bean的后置处理器后,IOC容器中Bean的生命周期分为七个阶段:

  1. 调用构造器或者是通过工厂的方式创建Bean对象
  2. 给Bean对象的属性注入值
  3. 执行Bean的后置处理器中的post ProcessBefore Initialization
  4. 调用初始化方法,进行初始化,初始化方法是通过init-method来指定的
  5. 执行Bean的后置处理器中的post Process AfterInitalization
  6. 只用Bean对象
  7. IOC容器关闭时,销毁Bean对象

 创建Bean对象的方式

1.使用构造函数创建Bean对象

在spring的配置文件中使用bean标签,配置id和class属性之后,且没有其他属性和标签时,采用的就是默认构造函数创建Bean标签,此时如果类中没有构造函数,就无法创建对象

实体类

public class Student {

    private String name;
    private char sex;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

反射创建student对象

    <bean id="student" class="com.atxiaoyao.bean.pojo">
    </bean>

2.通过静态工厂方法创建bean

静态工厂: 工厂本身不需要创建对象,通过静态方法调用

        对象 = 工厂类.工厂方法名();

实例工厂: 工厂本身需要创建对象

        工厂类  工厂对象 = new 工厂类();

        工厂对象.get**();

        工厂对象.set**();

3.通过实例工厂方法创建bean

4.实现FactoryBean工厂的接口

 Bean的注入方式

  1. 通过构造方法注入Bean
  2. 通过Setter方法注入Bean
  3. 通过list注入Bean
  4. 通过Map注入Bean

Bean的作用域

作用域描述
singleton在Spring IOC容器中只存在一个Bean实例。Bean以单例方式存在
prototype每次从容器中调用Bean时,都会返回 一个新的实例,即每次调用getBean()时,相关于执行了newXxxBean();
request每次http请求都会创建一个新的bean. 该作用域仅适用于web的Spring WebApplicationContext环境
session同一个Http Session共享一个Bean 不同的Session使用不同的Bean ;该作用域仅适用于web的Spring WebApplicationContext环境
application限定一个Bean的作用域为ServletContext的生命周期;该作用域仅适用于web的Spring WebApplicationContext环境

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值