《極客時間》玩轉Spring全家桶

下面經過屬性 setter 注入的案例演示 Spring 容器是如何實現依賴注入的。具體步驟以下。php

download:《極客時間》玩轉Spring全家桶java

1. 建立 PersonService 接口

在 springDemo01 項目的 com.mengma.ioc 包下建立一個名爲 PersonService 的接口,該接口中包含一個 addPerson() 方法,以下所示。spring

package com.mengma.ioc;public interface PersonService {public void addPerson();}

2. 建立接口實現類 PersonServiceImpl

在 com.mengma.ioc 包下建立一個名爲 PersonServiceImpl 的類,該類實現了 PersonService 接口,以下所示。app

package com.mengma.ioc;public class PersonServiceImpl implements PersonService {// 定義接口聲明private PersonDao personDao;// 提供set()方法,用於依賴注入public void setPersonDao(PersonDao personDao) {this.personDao = personDao;}// 實現PersonService接口的方法@Overridepublic void addPerson() {personDao.add(); // 調用PersonDao中的add()方法System.out.println("addPerson()執行了...");}}

上述代碼中,首先聲明瞭 personDao 對象,併爲其添加 setter 方法,用於依賴注入,而後實現了 PersonDao 接口的 addPerson() 方法,並在方法中調用 save() 方法和輸出一條語句。
ide

3. 在 applicationContext.xml 中添加配置信息

在 applicationContext.xml 配置文件中添加一個 <bean> 元素,用於實例化 PersonServiceImpl 類,並將 personDao 的實例注入到 personService 中,其實現代碼以下所示:測試

<bean id="personService" class="com.mengma.ioc.PersonServiceImpl"><!-- 將personDao實例注入personService實例中 --><property name="personDao" ref="personDao"/></bean>

4. 編寫測試方法

在 FirstTest 類中建立一個名爲 test2() 的方法,編輯後以下所示:this

@Testpublic void test2() {// 定義Spring配置文件的路徑String xmlPath = "applicationContext.xml";// 初始化Spring容器,加載配置文件ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);// 經過容器獲取personService實例PersonService personService = (PersonService) applicationContext.getBean("personService");// 調用personService的addPerson()方法personService.addPerson();}
相關文章
相關標籤/搜索