文章自己学习使用,比较简单。
属性在创建对象的时候给属性注入值。
1 属性注入之 setter方法:
<!-- 使用set 方法注入属性 -->
<bean id="propertyDemo2" class="com.springTest.serterTest.PropertyDemo1">
<!-- 给userName和age注入值 -->
<property name="userName" value="javaspring"></property>
<property name="age" value="10"></property>
</bean>
<!-- 使用set 方法注入对象 -->
<bean id="setterService" class="com.springTest.serterTest.SetterService">
<!-- 属性注入 -->
<property name="propertyDemo1" ref="propertyDemo2"></property>
</bean>
public class PropertyDemo1 {
String userName ;
String age;
public PropertyDemo1() {
}
public PropertyDemo1(String userName, String age) {
this.userName = userName;
this.age = age;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public class SetterService {
private PropertyDemo1 propertyDemo1;
public void setPropertyDemo1(PropertyDemo1 propertyDemo1) {
this.propertyDemo1 = propertyDemo1;
}
public void getUser(){
System.out.println(propertyDemo1.getAge()+"---"+propertyDemo1.getUserName());
}
2 属性注入之有参构造方法注入
<bean id="propertyDemo1" class="com.springTest.property.PropertyDemo1">
<constructor-arg name="name" value="王Java"></constructor-arg>
</bean>
3 P名称空间注入
对setter方法简化 省去property 是p入约束 xmlns:p="http://www.spring
引framework.org/schema/p"
1普通属性 p:属性名称=“”
2对象属性 p:属性名称-ref=""
<bean id="propertyDemo2" class="com.springTest.serterTest.PropertyDemo1" p:age="javaspring" p:userName="10"></bean>
<bean id="setterService" class="com.springTest.serterTest.SetterService" p:propertyDemo1-ref="propertyDemo2"></bean>
4、spel注入
对property进行统一编码 property里面只需要两个属性 name value
value的值 必须符合下面格式
常量 #{10} 字符串必须是‘’ #{''name}
#{beanid} 另一个bean的引用
#{beanid.propName} 操作数据
#{beanid.toString} 执行方法
#{T(类).字段|方法} 静态方法
<bean id="propertyDemo2" class="com.springTest.serterTest.PropertyDemo1" >
<property name="userName" value="#{propertyDemo2.userName}"></property>
<!-- z注入静态的-->
<property name="age" value="#{T(java.lang.Math).PI}"></property>
</bean>
<bean id="setterService" class="com.springTest.serterTest.SetterService">
<property name="propertyDemo1" value="#{propertyDemo2}"></property>
</bean>
复杂数据的注入
集合注入都是给<property >添加字标签
数组:<array>
list:<list>
set:<set>
map:<map> 使用K/V 使用entry
properties: <props> <prop key="s">value</prop>
<!-- 创建service实例 并注入DAO 对象 -->
<bean id="userServiceDao" class="com.springTest.service.impl.UserService">
<property name="userDao" ref="userDao"></property>
<!-- 数组 -->
<property name="arrys">
<list>
<value>su</value>
<value>"su"</value>
<value>su2</value>
<value>su3</value>
</list>
</property>
<!-- list -->
<property name="resultList">
<list>
<value>du</value>
<value>"du"</value>
<value>du2</value>
<value>du3</value>
</list>
</property>
<!-- Map -->
<property name="resultMap">
<map>
<entry key="map1" value="map1"></entry>
<entry key="map3" value="map3"></entry>
<entry key="map2" value="map2"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="driverclass">com.sql.jdbc.Driver</prop>
<prop key="userName">root</prop>
</props>
</property>
</bean>