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、利用接口注入
原文链接:https://www.f2er.com/javaschema/286974.html