spring - 使用 Spring 分离表示层和业务层

标签 spring n-tier-architecture

在我刚刚完成的项目中,我正在努力让分布式事务正常工作。

我们使用 JBoss 的 Arjuna 事务管理器和 Spring 的声明性事务边界实现了这一点。

我们的请求序列如下所示:

browser -> secured servlet -> 'wafer-thin' SLSB -> spring TX-aware proxy -> request-handler POJO

这意味着我们有一个 WAR 来为我们的安全 servlet 提供服务,而一个 EAR 为我们的 SLSB 提供服务。

我们的 SLSB 有一个静态初始化块来引导我们的 Spring 应用程序上下文。

我不喜欢技术的混合,但我喜欢表示层和业务层的分离,它们可以驻留在不同的物理位置。

我很想知道其他人在使用 Spring 时建议如何分离层?

最佳答案

仅仅为作为外观的 SLSB 需要一个 EJB3 应用程序服务器对我来说似乎不值得。您没有理由不删除它并让您的 servlet 直接与 Spring 一起工作。您可以将 ContextLoaderListener 添加到 WAR 以加载您的 ApplicationContext,然后添加 WebApplicationContextUtils 以获取它。或者,如果您需要做的比 Servlet 本身允许的更多,您可以使用 SpringMVC、Struts 或其他 Web 技术。

关于spring - 使用 Spring 分离表示层和业务层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/150146/

相关文章:

spring - 特殊字符的 Spring 资源包的 UTF-8 编码问题

java - 为所有当前登录的用户重新加载权限

c# - 以正确的方式分层 WCF 服务

asp.net-mvc - 自动映射器+xUnit : Missing type map configuration or unsupported mapping

.net - 层与层之间的 n-Tier 应用程序应该如何进行通信?

java - ClassReader 中的 ArrayIndexOutOfBoundsException 导致加载 ApplicationContext 失败

java - 嵌套 bean 的 Spring 依赖注入(inject)

java.util.MissingResourceException : Can't find bundle for base name views, 语言环境 en

c# - 使用dapper时sql放在哪里?

database - 在业务层过滤来自数据访问层的结果