1.注入的三种类型
(1)基本类型和String类型
(2)其他bean类型(必须在spring配置文件中出现过的bean)
(3)复杂类型(集合类型)
2.Spring三种依赖注入方式:
(1)使用构造函数注入
构造函数注入
涉及的标签constructor-arg
标签的属性:
type:指定参数的类型
index:指定参数的索引位置,从0开始
name:指定参数的名称 一般用它
==============上面三个属性是指定给哪个参数赋值的,下面两个属性是指定赋上面值得==============
value:指定基本数据类型或String类型的数据
ref:指定其他bean类型数据
标签出现的位置:
写在bean标签内部
类文件代码:
public class CustomerServiceImpl implements CustomerService {
private String driver;
private Integer port;
private Date today;
public CustomerServiceImpl(String driver, Integer port, Date today) {
super();
this.driver = driver;
this.port = port;
this.today = today;
System.out.println("业务层实现了持久层"+driver+port+today);
}
}
配置文件:
<bean id="now" class="java.util.Date"></bean>
<bean id="customerService" class="com.iafei.service.impl.CustomerServiceImpl">
<constructor-arg name="driver" value="com.mysql.jdbc.Driver"></constructor-arg>
<constructor-arg name="port" value="3306"></constructor-arg>
<constructor-arg name="today" ref="now"></constructor-arg>
</bean>
(2)set方法注入
类文件:
public class CustomerServiceImpl implements CustomerService {
private CustomerDao customerDao;
private String[] myStr;
private List<String> myList;
private Set<String> mySet;
private Map<String, String> myMap;
private Properties myPros;
public void setMyStr(String[] myStr) {
this.myStr = myStr;
}
public void setMyList(List<String> myList) {
this.myList = myList;
}
public void setMySet(Set<String> mySet) {
this.mySet = mySet;
}
public void setMyMap(Map<String, String> myMap) {
this.myMap = myMap;
}
public void setMyPros(Properties myPros) {
this.myPros = myPros;
}
public void setCustomerDao(CustomerDao customerDao) {
this.customerDao = customerDao;
}
配置文件:
<bean id="customerDao" class="com.iafei.dao.impl.CustomerDaoImpl"></bean>
<bean id="customerService" class="com.iafei.service.impl.CustomerServiceImpl">
<property name="customerDao" ref="customerDao"></property>
<property name="myStr">
<array>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</array>
</property>
<property name="myList">
<list>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</list>
</property>
<property name="myMap">
<map>
<entry key="aaa" value="aaa"></entry>
<entry key="bbb" value="bbb"></entry>
<entry key="ccc" value="ccc"></entry>
</map>
</property>
<property name="mySet">
<set>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</set>
</property>
<property name="myPros">
<props>
<prop key="aaa">aaa</prop>
<prop key="bbb">bbb</prop>
<prop key="ccc">ccc</prop>
</props>
</property>
</bean>
(3)使用注解注入