1. 程式人生 > >通過註解方式實現Spring IOC/DI

通過註解方式實現Spring IOC/DI

一,什麼是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");
   }