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、利用接口注入