普通的Java类
package demo;
public class PersonDemo {
private String name;
public void setName(String name) {
this.name = name;
}
public void info(){
System.out.println("此人名为:"+name);
}
}
Spring的 配置文件
bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd"
>
<bean id="personDemo" class="demo.PersonDemo">
<property name="name" value="wawa"/>
</bean>
</beans>
测试
package demo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class FirstTest {
public static void main(String[] args) {
//创建Spring的ApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
//输出Spring容器
System.out.println(ctx);
PersonDemo p = ctx.getBean("personDemo",PersonDemo.class);
p.info();
}
}
结果
文件位置及JAR包(挑选)
测试代码中,创建的ApplicationContext实例正是Spring容器。
Spring容器根据配置文件信息,不仅可以创建PersonDemo实例,而且能为该实例设置属性值——这种由Spring容器为对象设置属性的方式被称为控制反转(Inversion of Control,IoC)。