Spring中bean的三种创建方式以及bean的作用范围和生命周期

1.bean的 三种创建方式
2.bean对象的作用范围
3.bean对象的生命周期
bean的三种创建方式:
第一种使用默认构造函数创建:
在spring配置文件中使用bean标签,配置上id和class属性后,不再添加其他属性就是使用默认构造函数创建,如果class指定的类中没有默认构造函数则创建失败。
默认构造方法:

 public AccountServiceImpl(){
    System.out.println("对象创建了额");
}

配置文件中bean标签:

 <bean>id="accountService"class="com.itheima.service.impl.AccountServiceImpl"></bean>

第二种使用某个类中的方法创建:
在spring配置文件中使用bean标签将创建需要对象的类利用id和class属性进行配置,然后在次使用bean标签,利用id属性,factory-bean和factory-method属性进行配置。factory-bean属性填写上一个bean标签的id,factory-method填写上一个bean标签class属性中用于创建需要对象的方法。
创建对象的类:

 public class InstanceFactory {
public IAccountService getAccountService(){
    return new AccountServiceImpl();
}

}

配置文件中bean标签:

<bean id="instanceFactory" class="com.itheima.factory.InstanceFactory">		</bean>
<bean id="accountService" factory-bean="instanceFactory" factory-	method="getAccountService"></bean>

第三种使用某个类中的静态方法创建:
和第二种方法相似,只不过是改成了静态方法,标签的使用有一定差异。只用一个bean标签配置id属性,class属性写静态方法类的路径,factory-method属性写静态方法名。
静态方法类:

public class StaticFactory {
public static IAccountService getAccountService(){

    return new AccountServiceImpl();
}

}

配置文件中的bean标签:

<bean id="accountService" class="com.itheima.factory.StaticFactory" factory-	method="getAccountService"></bean>

2.bean的作用范围:
bean的作用范围调整是通过bean标签中的scope属性,这个属性指定了bean的作用范围,它的取值有:
singleton:单例模式也是默认值
prototype:多例模式
request:作用于web应用的请求范围
session:作用域web应用的会话范围
global-session:作用域集群环境的会话范围或者全局会话范围,当不是集群环境时就是session
这是最后一种global-session的应用场景,当用户对服务器发出请求,因为有多台服务器,需要经过反向代理设备进行调度,但是很有可能在第一台服务器响应第一次请求发送验证码之后,验证验证码的时候被调度到了另一台服务器,这个时候就需要用global-session来保证验证码在全局都可以使用负载均衡
3.bean的生命周期
单例对象
出生:当容器创建时对象出生
活着:容器还在对象还活着
死亡:容器死亡对象死亡
多例对象
出生:当我们使用对象时spring框架为我们创建
活着:对象在使用过程中一直活着
死亡:当对象长时间不使用并且没有其他对象引用时由垃圾回收器回收

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 春天是一个美好的季节,bean的创建bean的生命周期与此同样美好。Bean的创建是指在Spring容器创建bean对象的过程,而bean的生命周期指定义bean实例的生命周期,从创建到销毁的过程。 ### 回答2: Spring创建bean的过程如下: 1. 配置bean:通过XML配置文件或Java注解将要创建bean进行配置,包括bean的类、属性、依赖关系等。 2. 加载bean定义:Spring容器根据配置文件或注解信息,将bean的定义加载到内存。 3. 创建实例:Spring容器根据bean的定义,使用Java反射机制实例化bean对象。 4. 设置属性:Spring容器通过依赖注入的方式,将bean所依赖的属性注入到bean实例。 5. 调用初始化方法:如果bean实现了InitializingBean接口或在配置文件通过init-method属性指定了初始化方法,Spring容器在创建bean对象后会调用其初始化方法。 6. bean可用:经过以上步骤,Spring容器创建完成了bean,并将其放入容器,可以使用该bean了。 7. 调用销毁方法:如果bean实现了DisposableBean接口或在配置文件通过destroy-method属性指定了销毁方法,当容器关闭时,会调用bean的销毁方法。 Bean的生命周期包括以下阶段: 1. 实例化:Spring容器根据bean的定义和配置,使用反射机制实例化bean对象。 2. 设置属性:将bean的依赖属性注入到bean实例。 3. 初始化:Spring容器调用bean的初始化方法,执行一些初始化逻辑。 4. 使用:bean实例可以被应用程序使用。 5. 销毁:当容器关闭时,调用bean的销毁方法,执行一些清理逻辑。 在整个生命周期,开发人员可以通过配置文件或注解方式指定各个阶段的行为,如指定初始化方法、销毁方法、依赖注入等。Spring容器负责管理bean的生命周期,从而提供了更好的灵活性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值