Spring致力于提供一种方法管理你的业务对象。
Spring是全面的和模块化的。
它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。
Spring对你的工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。
(一)用Spring框架对属性工厂进行优化
属性工厂https://blog.youkuaiyun.com/zxl1148377834/article/details/81749556
1.添加Spring框架要用到的包
可以用Maven在http://mvnrepository.com/网站上下载
2.在类路径下写配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans">
<bean class="edu.edu.UserDao" id="userDao">
<property name="user" ref="user"></property>
</bean>
<bean class="edu.edu.User" id="u1">
<property name="id" value="21"></property>
<property name="name" value="哈哈"></property>
<property name="sex" value="女"></property>
</bean>
<bean class="edu.edu.User" id="u2">
<property name="id" value="22"></property>
<property name="name" value="嘻嘻"></property>
<property name="sex" value="女"></property>
</bean>
<bean class="edu.edu.User" id="u3">
<property name="id" value="23"></property>
<property name="name" value="呵呵"></property>
<property name="sex" value="女"></property>
</bean>
<bean class="edu.edu.User" id="user">
<property name="id" value="20"></property>
<property name="name" value="香香"></property>
<property name="sex" value="女"></property>
<property name="dir">
<array>
<value>西安</value>
<value>北京</value>
<value>上海</value>
</array>
</property>
<property name="dir1">
<list>
<value>西安</value>
<value>北京</value>
<value>上海</value>
</list>
</property>
<property name="dir2">
<set>
<value>西安</value>
<value>北京</value>
<value>上海</value>
</set>
</property>
<property name="dir3">
<map>
<entry key="111" value-ref="u1"></entry>
<entry key="112" value-ref="u2"></entry>
<entry key="113" value-ref="u3"></entry>
</map>
</property>
</bean>
</beans>
并且可以在该配置文件里给参数赋值
相当于.properties的文件中的配置
articleDao=edu.edu.impl.AddArticleImpl
channelDao=edu.edu.impl.AddChannelImpl
3.调用配置文件
这是需要配置的类(需要执行)
在配置文件中已经配置并且赋值
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
public class User {
private String name;
private int id;
private String sex;
private String[] dir;
private ArrayList<String> dir1;
private Set<String> dir2;
public Set<String> getDir2() {
return dir2;
}
public void setDir2(Set<String> dir2) {
this.dir2 = dir2;
}
private Map<String, User> dir3;
public ArrayList<String> getDir1() {
return dir1;
}
public void setDir1(ArrayList<String> dir1) {
this.dir1 = dir1;
}
public Map<String, User> getDir3() {
return dir3;
}
public void setDir3(Map<String, User> dir3) {
this.dir3 = dir3;
}
public String[] getDir() {
return dir;
}
public void setDir(String[] dir) {
this.dir = dir;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
下面是调用配置文件
@Test
public void test2() {
//读取配置文件
BeanFactory beanFactory = new ClassPathXmlApplicationContext("peizhi.xml");
//读取配置文件中的id,找到id名为user的类
User user =(User) beanFactory.getBean("user");
System.out.println(user.getId()+" :"+user.getName()+" :"+user.getSex());
for(String dir:user.getDir()) {
System.out.println(dir);
}
for(String dir1:user.getDir1()) {
System.out.println(dir1);
}
for(Iterator<String> its = user.getDir2().iterator();its.hasNext();) {
System.out.println(its.next());
}
Map<String, User> m = user.getDir3();
User u = m.get("111");
System.out.println(u.getId()+" :"+u.getName()+" :"+u.getSex());
}