編程
DI:Dependency inject 依賴注入app
解釋:高層模塊(控制層)不該該依賴你低層模塊,二者都應該依賴其抽象。server不須要知道具體的實現,只須要知道接口(面向接口編程)。能夠經過配置文件,知道具體的實現。spa
示例代碼:code
接口代碼:server
package test04.dao; public interface IUserDao { public void sayHello(); }
dao代碼:xml
package test04.dao; public class UserDao implements IUserDao { public void sayHello() { System.out.println("hello---------------"); } }
xml代碼:blog
<bean id="userdao" class="test04.dao.UserDao"></bean> <bean id="service" class="test04.service.UserService"> <property name="iUserDao" ref="userdao"></property> </bean>
Main代碼:接口
public class Main { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classBeanMVC.xml"); UserService userService = (UserService) applicationContext.getBean("service"); userService.test(); } }