组件管理与域模型设计:技术解析与实践指南
1. 容器耦合与关注点分离
在实际应用中,组件与容器的耦合通常并非障碍。我们往往会预先从架构层面选择容器类型,例如决定部署到 J2EE Servlet 容器,就会编写继承 javax.servlet.http.HttpServlet 类的 Servlet 类,或者实现 javax.ejb.EJBObject 的 EJB。这并非局限于特定供应商的容器,而是遵循通用的容器模型。
将配置细节从组件中分离是有益的,这遵循了“关注点分离”原则,即不同问题(如实现、部署和配置)应分开处理,体现了松耦合的思想。同一组件可在不同容器中以不同方式部署,甚至在同一容器中多次部署,而无需修改组件代码。
2. 利用容器定义作用域
我们并非只能将组件部署到单个容器,可通过嵌套容器来限制组件的作用域。除最外层容器外,每个容器都持有对其父容器的引用。当容器识别到依赖项时,会先检查该依赖项是否对应已注册的组件,若未找到则将请求传递给父容器,直至请求得到满足或遍历完所有容器。
在 J2EE 中,这类似于 HTTP 请求的 Request、Session 和 Application 作用域。我们可以将三个容器串联:最内层代表 Request 作用域,中间层代表 Session 作用域,最外层代表 Application 作用域。若组件处于 Request 作用域,请求它的组件可立即获取;若未找到,容器会转向 Session 作用域的父容器,最后是 Application 作用域的容器。
g
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



