POJO--简单的Java对象
EJB编程模型
提供一种与运行时平台相结合的分布式业务组件模型,该运行时平台提供了执行EJB所需的所有中间件服务。
存在的问题
可测试性问题
部署过程
将开发人员转向过程程序设计风格
POJO编程模型的优点
轻量级容器
容器的概念
在一个环境中,所有组件都被创建和装配,并提供所需的中间件服务。
例子:
Servlet容器负责创建和管理应用程序web层的组件,如Servlet\JSP\Filter.
任务
处理相关的配置信息,在便在运行时实例化所需是组件并装配依赖项。
任何容器应该能向该环境提供的基本服务:
控制反转(Inversion of Controll)
简称IoC,在组件类中,不需要使用新的操作符来实例化依赖组件,而是在运行时由容器实例将依赖组件注入组件,对依赖项的控制由组件转到容器。
两种形式
依赖查找和依赖注入
查找上下文也称JNDI上下文,之前流行使用JNDI进行的显式依赖查找转变为隐式依赖注入。
依赖注入
为什么要使用依赖注入?或者使用依赖注入有哪些好处?
两种依赖注入方法
Setter注入和构造函数注入
Setter注入
当一个对象被容器实例化后会马上调用Setter方法。该注入在组件的创建或初始化阶段发生,在处理业务方法调用之前完成。
最重要的优点
在组件被创建之后可以进行重新配置。组件的依赖项可以在运行时更改。
最大的缺点
并不是所有所需的依赖项都可以在使用前被注入,从而使组件处于一种部分配置状态。
构造函数注入
IoC容器允许开发人员在应用程序配置中针对相同的组件混合使用这两种不同类型的依赖注入方法。