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、利用介面注入