spring基本bean注入方法配置

本文详细介绍了Spring框架中依赖注入的各种方式,包括构造器注入、属性注入等,并展示了如何使用Spring管理复杂的对象关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">

<!-- 1、根据构造器参数顺序注入 -->  
<bean id="person1" class="com.founder.model.Person">
<constructor-arg value="111" index="0"/>
<constructor-arg value="lily" index="1"/>
<constructor-arg value="0"  index="2"/>
</bean>

<!-- 2、根据构造器参数的类型注入 -->  
<bean id="person2" class="com.founder.model.Person">
<constructor-arg value="222" type="java.lang.String"/>
<constructor-arg value="zhangsan" type="java.lang.String"/>
<constructor-arg value="1"  type="int"/>
</bean>

<!-- 3、根据构造器参数的顺序和类型注入 -->  
<bean id="person3" class="com.founder.model.Person">
<constructor-arg value="333" type="java.lang.String"/>
<constructor-arg value="lisi" type="java.lang.String"/>
<constructor-arg value="1"  type="int"/>
</bean>

<!-- 4、根据属性注入 -->  
<bean id="person4" class="com.fonder.model.Person">
<property name="id" value="444"/>
<property name="name" value="问问"/>
<property name="sex" value="1"/>
</bean>

<!-- 部门,独立的bean -->
<bean id="dep1" class="com.founder.model.Department">
<property name="id" value="11"></property>
<property name="name" value="研发部"></property>
<property name="manager" value="张三"></property>
</bean>

<!-- 人员部门通过引用注入 -->
<bean id="person5" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="555"/>
<property name="name">
<!-- 特殊字符值赋值 -->
<value><![CDATA[!9@#]]></value>
</property>
<property name="sex" value="0"/>
<!-- 通过引用注入 -->
<property name="department" ref="dep1"></property>
</bean>

<!-- 人员部门通过内部Bean注入 -->
<bean id="person6" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="666"/>
<property name="name" value="更换"/>
<property name="sex" value="1"/>
<!-- 通过内部bean注入 -->
<property name="department">
<!-- 此处无需写id-因为已经确定是person5的内部bean,再其内部已经是唯一的 -->
<bean class="com.founder.model.Department">
<!-- 这里通过属性或构造方式注入 -->
<property name="id" value="22"></property>
<property name="name" value="运维部"></property>
<property name="manager" value="李四"></property>
</bean>
</property>
</bean>

<!-- 级联属性方法设置(注意:不许保证对应成员变量已经被set,否则为null会抛异常) -->
<!-- 人员Person - 部门 - 公司 -->
<bean id="person7" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="777"/>
<property name="name" value="多个"/>
<property name="sex" value="0"/>
<property name="department" ref="dep1" />
<property name="department.id" value="55"></property>
<property name="department.name" value="哈哈哈"></property>
<property name="department.manager" value="嘎嘎嘎"></property>


<!-- 此处保证company也被new或被通过属性已经被注入
<property name="department.company.id" value="aaa"></property>
<property name="department.company.name" value="百度"></property>
<property name="department.company.addr" value="北京上地九街"></property>
-->
</bean>

<!--  -->
<bean id="c1" class="com.founder.collect.Contact">
<property name="id" value="c1"></property>
<property name="type" value="0"></property>
<property name="number" value="lixiang6153@126.com"></property>
</bean>

<bean id="c2" class="com.founder.collect.Contact">
<property name="id" value="c2"></property>
<property name="type" value="1"></property>
<property name="number" value="941415509"></property>
</bean>

<!-- 集合类型注入 -->
<bean id="p1" class="com.founder.collect.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p1"/>
<property name="name" value="dsdf"/>
<property name="sex" value="0"/>
<property name="contacts">
<list>
<ref bean="c1"/>
<ref bean="c2"/>
<bean id="c3" class="com.founder.collect.Contact">
<property name="id" value="c3"></property>
<property name="type" value="2"></property>
<property name="number" value="lixiang6153"></property>
</bean>
</list>
</property>
</bean>

<!-- 集合类型注入 -->
<bean id="p2" class="com.founder.collect.NewPerson">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p2"/>
<property name="name" value="ddd"/>
<property name="sex" value="1"/>
<property name="contacts">
<map>
<entry key="mail" value-ref="c1"></entry>
<entry key="qq" value-ref="c2"></entry>
</map>
</property>
</bean>

<!-- Properties赋值 -->
<bean id="datasource" class="com.founder.collect.DataSource">
<property name="properties">
<props>
<prop key="driver">com.mysql.jdbc.Driver</prop>
<prop key="url">jdbc:mysql://localhost:3306/testDB</prop>
<prop key="username">root</prop>
<prop key="password">123456</prop>
</props>
</property>
</bean>

<!-- 配置单例的集合bean,以供多个bean进行引用,需要导入Util命名 空间 -->
<util:list id="contacts">
<ref bean="c1"/>
<ref bean="c2"/>
</util:list>
<!-- 引用单例集合bean -->
<bean id="p3" class="com.founder.collect.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p1"/>
<property name="name" value="dsdf"/>
<property name="sex" value="0"/>
<property name="contacts" ref="contacts"/>
</bean>
</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝壳里的沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值