Spring依赖注入数值问题
1. 字面量数值
- 数据类型:基本数据类型及包装类、String
- 语法:value属性或value标签
2. CDATA区
- 语法:<![CDATA[]]>
- 作用:在xml中定义特殊字符时,使用CDATA区
3. 外部已声明bean及级联属性赋值
-
语法:ref
-
注意:级联属性更改数值会影响外部声明bean【ref赋值的是引用】
-
示例代码
<bean id="dept1" class="com.crzhang.pojo.Dept"> <property name="deptId" value="1"></property> <property name="deptName" value="研发部门"></property> </bean> <bean id="empChai" class="com.crzhang.pojo.Employee"> <property name="id" value="101"></property> <property name="lastName" value="chai"></property> <property name="email" value="chai@163.com"></property> <property name="salary" value="50.5"></property> <property name="dept" ref="dept1"></property> <property name="dept.deptName" value="财务部门"></property> </bean>
#### 4. 内部bean
-
概述
- 内部类:在一个类中完整定义另一个类,当前类称之为内部类
- 内部bean:在一个bean中完整定义另一个bean,当前bean称之为内部bean
-
注意:内部bean不会直接装配到IOC容器中
-
示例代码
<!-- 测试内部bean--> <bean id="empXin" class="com.crzhang.pojo.Employee"> <property name="id" value="102"></property> <property name="lastName" value="xx"></property> <property name="email" value="xx@163.com"></property> <property name="salary" value="51.5"></property> <property name="dept"> <bean class="com.crzhang.pojo.Dept"> <property name="deptId" value="2"></property> <property name="deptName" value="人事部门"></property> </bean> </property> </bean>
5 集合
- List
<!-- 测试集合-->
<bean id="dept3" class="com.crzhang.pojo.Dept">
<property name="deptId" value="3"></property>
<property name="deptName" value="程序员鼓励师"></property>
<property name="empList">
<list>
<ref bean="empChai"></ref>
<ref bean="empXin"></ref>
<!-- <bean></bean>-->
</list>
</property>
</bean>
<!-- 测试提取List-->
<util:list id="empList">
<ref bean="empChai"></ref>
<ref bean="empXin"></ref>
</util:list>
<bean id="dept4" class="com.crzhang.pojo.Dept">
<property name="deptId" value="4"></property>
<property name="deptName" value="运营部门"></property>
<property name="empList" ref="empList"></property>
</bean>
- Map
<!-- 测试Map-->
<bean id="dept5" class="com.crzhang.pojo.Dept">
<property name="deptId" value="5"></property>
<property name="deptName" value="采购部门"></property>
<property name="empMap">
<map>
<entry key="101" value-ref="empChai"></entry>
<entry>
<key><value>103</value></key>
<ref bean="empChai"></ref>
</entry>
<entry>
<key><value>102</value></key>
<ref bean="empXin"></ref>
</entry>
</map>
</property>
</bean>
<util:map id="empMap">
<entry key="101" value-ref="empChai"></entry>
<entry>
<key><value>103</value></key>
<ref bean="empChai"></ref>
</entry>
<entry>
<key><value>102</value></key>
<ref bean="empXin"></ref>
</entry>
</util:map>
<bean id="dept6" class="com.crzhang.pojo.Dept">
<property name="deptId" value="106"></property>
<property name="deptName" value="后勤部门"></property>
<property name="empMap" ref="empMap"></property>
</bean>
Spring依赖注入方式【基于XML】
为属性赋值方式
- 通过xxxset()方法
- 通过构造器
- 反射
1. set注入
- 语法:<property>
2. 构造器注入
- 语法:<constructor-arg>
3. p名称空间注入
导入名称空间:xmlns:p=“http://www.springframework.org/schema/p”
-
语法:
-
示例代码
<bean id="stuZhouxu" class="com.crzhang.spring.pojo.Student"> <property name="stuId" value="102"></property> <property name="stuName"> <value><![CDATA[<<zhouxu>>]]></value> </property> </bean> <bean id="stuZhiFeng" class="com.crzhang.spring.pojo.Student"> <constructor-arg name="stuId" value="103"></constructor-arg> <constructor-arg name="stuName" value="zhifeng"></constructor-arg> </bean> <bean id="stuXiaoxi" class="com.crzhang.spring.pojo.Student" p:stuId="104" p:stuName="xiaoxi"></bean>