Spring6 DI 依赖注入--Bean属性赋值

Spring6基于XML实现Bean 管理(属性赋值)

IOC和DI有什么区别:DI是IOC中的具体实现,DI表示依赖注入或注入属性,注入属性要在创建对象的基础之上完成

依赖注入方法

bean属性赋值方法只有一种:构造器注入(之所以这么说是为了便于记忆),我们知道构造器有两种:  无参构造,有参构造。这两种方法最终都是要调用set方法完成。

有参构造属性赋值

复制代码
<!--有参构造注入属性 name-->
<bean id="" class="">
    <!--属性:可以根据有参构造函数的参数名(name),
     值:value 或ref(外部BEAN)引用
-->
    <constructor-arg name="" value=""></constructor-arg>
    <constructor-arg name="" value=""></constructor-arg>
</bean>


复制代码
复制代码
 <!-- 使用构造方法注入属性 index -->
<bean id="" class="">
       <!--
       属性:也可以根据使用参数索引 (index)
      值:value 或 ref(外部bean)引用
    -->
        <constructor-arg index="0" ref=""/>
       <constructor-arg index="1" value=""/>
</bean>
复制代码

 

无参构造属性赋值

无参构造+set方法实现,实体类中要有属性的set 方法和无无参构造函数

复制代码
<!--set方法注入属性-->
<bean id="" class="">
    <!--使用property完成属性注入
        name:类里面属性名称
        value:向属性注入的值 或ref 外部bean引用
    -->
    <property name="" value=""></property>
    <property name="" value=""></property>
</bean>
复制代码

 

属性赋值--特殊值

复制代码
<bean id="" class="">
    <!--设置属性为空-->
    <property name="">
        <null/>
    </property>
    <!-- 属性值包含特殊符号
       
        把带特殊符号内容写到CDATA
    -->
    <property name="">
        <value><![CDATA[任意值]]></value>
    </property>
</bean>
复制代码

在给属性赋值时,如果对象的属性A类型为对象B,那么可以在A的bean中对B的属性赋值,

复制代码
<bean id='b' class=''>
    <property name='c' value=''>
</bean>

<bean id='a' class=''>
    <property name='mm' value=''>
    <property name='nn' ref='b'>
    <!-- 给属性的属性赋值 叫做级联赋值-->
    <property name='b.c' value=''>
</bean>


复制代码

 

Bean标签的其它属性

scope属性值

在spring配置文件bean标签里面有属性scope用于设置单实例还是多实例。


singleton,表示单实例对象: 加载spring配置文件就会创建单实例对象
prototype,表示多实例对象 :在调用getBean方法创建多实例对象。

 autowire自动装配 

 

<bean id="" class ="" autowire="">
</bean>


byName 根据属性名称进行注入,bean的id要和类的属性名称一致
byType 根据类型(class)注入,此时同一个类的bean定义要保证唯一

 

posted on   hztech  阅读(76)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示