通過註解方式實現Spring IOC/DI
阿新 • • 發佈:2018-12-17
一,什麼是Spring IOC/ID
Spring IOC(控制反轉)/DI(依賴注入)是面向物件的一種設計理念,用來降低程式程式碼之間的耦合度。 IOC/ID的核心是ApplicationContext容器,容器接管了物件的建立。只要類註冊在容器中,容器初始化以後就會為所有類建立單例物件,程式碼中通過getBean(“beanname”)就可以拿到物件。
二,如何通過註解的方式實現spring IOC/ID
1. 建立applicationContext.xml檔案,
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!--容器掃描指定包目錄下的類檔案,此處容器掃描com.leon.pojo下的所有類--> <context:component-scan base-package="com.leon.pojo"/> /beans>
2. 在需要建立物件的類中加入標註。根據物件的不同選擇標註元件@Compoment,@Repository, @Service, @Controller。如果類中包含引用型別,則引用型別也需要標註為元件,且在引用型別前需要加自動連結@Autowired
@Component public class User { public int userID; public String userName; } @Component public class Group { private int groupId; private int groupName; @Autowired private User user; }
3. 建立容器物件,呼叫容器的getBean方法,型別強轉以後就可以得到物件。
@Test
public void test1(){
ApplicationContext app= new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) app.getBean("user");
Group group= (Group) app.getBean("group");
}