集合的注入的四种方式
※不同之处只是spring文件不同。
一.集合的注入的四种方式—List注入方式
1.编写类:
package com.dao;import java.util.List;public class DepDao { private List ls; public List getLs() { return ls; } public void setLs(List ls) { this.ls = ls; }}
3. 注入类到spring.xml文件中:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <!-- id表示注入类的唯一标示,class表示类的来源 --> <bean id="DepDao" name="code">package com.test;import java.util.List;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import com.dao.DepDao;public class Test { public static void main(String[] args) { //获取spring.xml文件路径 String path = Test.class.getClass().getResource("/").getPath(); System.out.println("Spring的xml文件路径--->"+path); //获取上下文关系对象 ApplicationContext actxt = new FileSystemXmlApplicationContext(path+"spring.xml"); //查找spring.xml文件获取DepDao对象 DepDao dao = (DepDao) actxt.getBean("DepDao"); //调用get方法 List ls = dao.getLs(); for (int i = 0; i < ls.size(); i++) { System.out.println("显示结果:"+ls.get(i)); } }}
显示结果:
Spring的xml文件路径--->/E:/work/Test/bin/
显示结果:zhangsan
显示结果:lisi
显示结果:wangwu
二.集合的注入的四种方式—Set注入方式
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <!-- id表示注入类的唯一标示,class表示类的来源 --> <bean id="DepDao" name="code"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <!-- id表示注入类的唯一标示,class表示类的来源 --> <bean id="DepDao" name="code"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <!-- id表示注入类的唯一标示,class表示类的来源 --> <bean id="DepDao" class="com.dao.DepDao"> <property name="ls"> <map> <entry key="1"> <value>zhangsan</value> </entry> <entry key="2"> <value>lisi</value> </entry> <entry key="3"> <value>wangwu</value> </entry> </map> </property> </bean></beans>
显示结果:
Spring的xml文件路径--->/E:/work/Test/bin/
显示结果:{1=zhangsan, 2=lisi, 3=wangwu}
自动装配的五种模式
1. Byname模式
通过bean的属性名称自动装配
2. Bytype模式
如果配置文件中正好有一个与属性类型一样的bean,就自动装配这个属性
3. Constructor模式
根据构造函数的参数进行自动装配。
4. Autodetect
通过对bean检查类的内部来选择Constructor或者bytype,如果没有构造器,就用bytype(根据类型)装配,有构造器,就先使用构造器装配。