spring支持的注入方式:
(1)set注入方式
(2)有参注入方式具体实现
有参注入方式:
<bean id="bean" class="com.psn.spring.property.PropertyDemo">
<constructor-arg name="username" value="xiaowang"></constructor-arg>
</bean>
set注入方式(*):
1.字符串属性注入
<bean id ="bean" class="com.psn.spring.property.Book">
<property name="name" value="hehe"></property>
</bean>
<!-- 注入属性值
name属性值:类里面定义的属性名称
value属性:设置具体的值
-->
2.对象类型注入
UserDao.java
public class UserDao {
public void add()
{
System.out.println("userdao...........");
}
}
UserService.java
public class UserService {
UserDao userdao;
public void setUserdao(UserDao userdao) {
this.userdao = userdao;
}
public void add()
{
System.out.println("userservice...........");
userdao.add();
}
}
applicationContext.xml
<bean id="userDao" class="com.psn.spring.property.UserDao"></bean>
<bean id="userservice" class="com.psn.spring.property.UserService">
<property name="userdao" ref="userDao"></property>
</bean>
<!-- 注入dao对象
name属性值:service类里面属性名称
现在不要写value属性,因为刚才是字符串,现在是对象
写ref属性:dao配置bean标签中id值
-->
3.复杂属性注入
//复杂属性
private String[] arrs;
private List list;
private Map map;
private Properties properties;
<!-- 注入复杂属性 -->
<bean id="person" class="com.psn.spring.property.Person">
<property name="arrs" >
<!-- <list>
<value>xiaowang</value>
<value>xiaoma</value>
<value>wanger</value>
</list> -->
<array>
<value>xiaowang</value>
<value>xiaoma</value>
<value>wanger</value>
</array>
</property>
<property name="list">
<list>
<value>xiaowang</value>
<value>xiaoma</value>
<value>wanger</value>
</list>
</property>
<property name="map">
<map>
<entry key="aa" value="aa"></entry>
<entry key="bb" value="bb"></entry>
<entry key="cc" value="cc"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="driverclass">com.mysql.jdbc.Driver</prop>
<prop key="username">root</prop>
</props>
</property>
</bean>