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



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