Spring-XML配置管理Bean

该博客详细介绍了Spring中Bean的三种管理方式,包括id、class、name等属性的作用,并探讨了DI(依赖注入)配置,包括构造函数注入和set方法注入的不同类型,以及constructor-arg、property、array、list、set、map、props等标签的使用,通过具体的例子帮助理解Bean的配置和管理。
摘要由CSDN通过智能技术生成

Bean的三种管理方式

<!--spring ioc 实例化bean的三种方式-->
<!--方式一:无参构造方式(推荐)
在默认情况下,它会通过反射调用无参构造函数来创建对象。如果类中没有无参构造函数,将创建 失败。
-->
<!--<bean id="connectionUtils" class="com.wjy.utils.ConnectionUtils"/>-->


<!--另外两种方式,是为了将我们自己new的bean加入ioc容器管理-->
<!--方式二:静态方法-->
<!--<bean id="connectionUtils" class="com.wjy.factory.CreateBeanFactory" factory-method="getStaticConnectionUtils"/>-->
<!--方式三:实例化方法
此种方式和上面静态方法创建其实类似,区别是用于获取对象的方法不再是static修饰的了,而是 类中的一 个普通方法。
-->
<bean id="createFactory" class="com.wjy.factory.CreateBeanFactory"/>
<bean id="connectionUtils" factory-bean="createFactory" factory-method="getConnectionUtils"/>
public class CreateBeanFactory {
   

    public static ConnectionUtils getStaticConnectionUtils() {
   
        return new ConnectionUtils();
    }

    public ConnectionUtils getConnectionUtils() {
   
        return new ConnectionUtils();
    }
}

Bean标签属性

在基于xml的IoC配置中,bean标签是最基础的标签。它表示了IoC容器中的一个对象。

  • id属性: 用于给bean提供一个唯一标识。在一个标签内部,标识必须唯一。
  • class属性: 用于指定创建Bean对象的全限定类名。
  • name属性: 用于给bean提供一个或多个名称。多个名称用空格分隔。
  • factory-bean属性: 用于指定创建当前bean对象的工厂bean的唯一标识。当指定了此属性之后, class属性失效。
  • factory-method属性: 用于指定创建当前bean对象的工厂方法,如配合factory-bean属性使用, 则class属性失效。如配合class属性使用,则方法必须是static的。
  • init-method属性: 用于指定bean对象的初始化方法,此方法会在bean对象装配后调用。必须是 一个无参方法。
  • destory-method属性: 用于指定bean对象的销毁方法,此方法会在bean对象销毁前执行。它只 能为scope是singleton时起作用。
  • scope属性: 用于指定bean对象的作用范围。通常情况下就是singleton。当要用到多例模式时, 可以配置为prototype。
Scope 描述
singleton (默认)单例模式:一个IOC容器中只有一个实例
prototype 多例模式/原型模式,每次从IOC容器中获取,都创建新的实例
request 一个HTTP Request,创建一个实例
session 一个HTTP Session,创建一个实例
application 一个ServletContext,创建一个实例
websocket 一个WebSocket,创建一个实例

单例模式:singleton
对象出生:当创建容器时,对象就被创建了。
对象活着:只要容器在,对象一直活着。
对象死亡:当销毁容器时,对象就被销毁了。
一句话总结:单例模式的bean对象生命周期与容器相同。
多例模式:prototype
对象出生:当使用对象时,创建新的对象实例。
对象活着:只要对象在使用中,就一直活着。
对象死亡:当对象⻓时间不用时,被java的垃圾回收器回收了。
一句话总结:多例模式的bean对象,spring框架只负责创建,不负责销毁。

DI配置

Spring依赖注入的分类

  • 按照注入方式分类:
    • 构造函数注入: 需要被管理的类提供有参构造函数注入数据 <constructor-arg/>
    • set方法注入: 需要被管理类提供属性的set方法; <property/>
  • 按照注入数据类型分类:
    • 基本类型&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值