依賴注入和JavaBean

1什麼是JavaBean

javabean是符合特定規範的java組件,它具有一個無參的構造方法,和由getter/setter提供的標準屬性供外部訪問。JavaBean即可以作爲數據對象的載體,也可以被設計爲業務組件實現的商業邏輯。

2容器

容器是爲了某些組件運行提供必需要運行的軟件環境,spring提供的容器可以管理所有的輕量級java組件,包括JavaBean、JNDI和所有能被控制的實例化的java對象,同時也是支持依賴注入的容器(Dependency Inejection)。

public class BookService
{
private BookDao bookDao;
public void setBookDao(BookDao bookDao)
   {
         this.bookDao = bookDao;
   }
  public  List<book> listBookByAuthor(String author)
    {
           List<Book> books = bookDao.listAll();
           Iterator<Book> it = books.iterator();
                 while(it.hasNext)
                          {
                                 if(!it.next().getAuthor.equals(author))
                                      it.remove();
                           }
                  return books;
    }    
}

上面這段代碼的bookDao方法不是由bookService創建的,而是由DI容器創建的實例,並且通過setBookDao()來注入.

   (1)BookService 不必關心如何創建BookDao實例,一不必關心BookDao實例如何實現,只要使用它就可以了。

  (2)BookDao實例由DI容器管理,可以在多個組件之間共享。

(3)便於測試bookService實例,可以自己編寫一個MockBookDao實例用於測試,而不必關心他的實現。

使用實例需要告訴容器個組件之間的依賴關係,寫XML文件

(3)依賴注入的三種方式

1、直接卸載構造函數中

2、直接利用set方法實現

3、利用接口注入



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章