IoC 控制反转
public class PersonServiceBean{ private PersonDAO personDAO = new PersonDAO(); public void save(Person person){ personDAO.save(person); } }
如上代码所示,PersonDAOBean是在应用内部创建及维护的。所谓的控制反转(IoC)就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的,这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。控制权可以理解对应用程序运行所需要的Bean的管理(创建和销毁),若将上述代码看成一个应用,那么这个应用运行需要的Bean就是PersonDAOBean。
DI 依赖注入
当我们把依赖对象交给外部容器负责创建,那么PersonServiceBean类可以改成如下:
public class PersonServiceBean{ private PersonDAO personDAO; //通过构造器参数,让容器把创建好的依赖对象 //注入进PersonServiceBean,也可以使用setter注入。 public PersonServiceBean(PersonDAO personDAO){ this.personDAO = personDAO; } public void save(Person person){ personDAO.save(person); } }
依赖注入:在运行期,由外部容器动态地将依赖对象注入到组件中。
时间: 2024-10-03 22:47:24