Spring之IOC示例
IOC(Inversion of Control) ,所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。
?
看下面的程序:
Spring容器在启动后,就会对配置文件中的所有bean进行初始化,并且把id为personDAO的bean注入到id为personServiceBean的bean中,这样personServiceBean就不用负责对personDAObean的创建及维护了,这项工作在容器初始化时就已经完成了,配置文件中的property中的name属性指的是id为personServiceBean的bean中有一个setPersonDAO方法。
?
测试程序:
package spring.test;import org.junit.Test;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.spring.service.PersonService;public class SpringTest {@Testpublic void instanceSpring() {ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");PersonService personService = (PersonService) ctx.getBean("personServiceBean");personService.save();}}?
?运行测试程序,控制台输出:Executing PersonDAOBean's add method!?
?
?
?
?