文章目录
1.IOC
在xml文档中配置好bean,在Java代码中直接通过name获取bean。原理是反射
举个栗子:
- MySql类:
public class MySql{
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- XML文件:
<bean name="database" class="com.qxt.MySql">
<property name="name" value="mysql" />
</bean>
这个配置说明一个叫database的bean,映射是com.qxt.MySql类,有一个属性name,值为mysql。
这个MySql的属性必须有get和set方法。 详见:JavaBean
- 在java代码中的使用:
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "applicationContext.xml" });
MySql c = (MySql) context.getBean("database");
System.out.println(c.getName());
System.out.println(c.getId());
输出:mysql 0
XML文件只给它配置了name属性,所以getId()得到的是0
这样做,由程序生成对象 变成了 Spring根据配置文件生成对象,程序接受对象,程序就可以专注于业务实现。