Spring 之 配置 bean

  • 通过 XML 文件用 bean 节点来配置 。
  • 注入方式有三种:属性注入,构造器注入,工厂方法注入(很少使用)

属性注入

该配置方法算是最基本的 Spring 的配置。也就是“属性注入”

  • id:表示 bean 的名称,在 ctx.getBean(“#id”) 的时候可以获取 bean
  • class:没啥好说的
  • property:属性注入使用 元素,name 属性指定 Bean 的属性名称,value 属性或者 子节点指定属性值
  • 原理:通过 setter 方法来注入
<bean id="helloSpring" class="com.free.spring.beans.HelloSpring">
        <property name="name" value="Spring"></property>
</bean>

构造器注入

  • 通过构造方法注入Bean 的属性值或依赖的对象,它保证了 Bean 实例在实例化后就可以使用。
  • 构造器注入在 元素里声明属性, 中没有 name 属性

构造器注入分两种:按类型匹配入参、按索引匹配入参

  1. 按类型匹配入参
<bean id="car2" class="com.free.spring.beans.Car">
        <constructor-arg value="Audi" type="java.lang.String"></constructor-arg>
        <constructor-arg value="1111" type="java.lang.Integer"></constructor-arg>
        <constructor-arg value="cas" type="java.lang.String"></constructor-arg>

</bean>
  1. 按索引匹配入参
    <bean id="car" class="com.free.spring.beans.Car">
        <constructor-arg value="Audi" type="java.lang.String" index="0"></constructor-arg>
        <constructor-arg type="java.lang.String" index="1">
            <value><![CDATA[<Shanghai>]]></value>
        </constructor-arg>
        <constructor-arg value="1234.00" type="double" index="2"></constructor-arg>
    </bean>

  • 基本数据类型、String 类型,也叫做字面值,都可以通过 value 属性进行注入
  • 如果字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来。

引用其他的 bean

  • 通过 元素 或者 ref 属性为 bean 的属性或构造器参数指定对 bean 的引用
    <bean id="person4" class="com.free.spring.beans.collection.Person">
        <property name="car" ref="cars"></property>
    </bean>
  • 内部 bean
    当 Bean 实例仅仅给一个特定的属性使用时,用到内部 bean,但是不能用在其他任何地方
<bean id="personX" class="com.free.spring.beans.collection.Person">
        <property name="name" value="Alex"></property>
        <property name="age" value="20"></property>
        <property name="car">
            <bean class="com.free.spring.beans.Car">
                <constructor-arg value="20" type="java.lang.Integer"></constructor-arg>
                <constructor-arg value="OOOO" type="java.lang.String"></constructor-arg>
                <constructor-arg value="aaaa" type="java.lang.String"></constructor-arg>
            </bean>
        </property>
    </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值