gpt4 book ai didi

java - 从 JSP/Servlet/Portlets(Jetspeed) 迁移到 Spring 项目 - 应用程序设计

转载 作者:行者123 更新时间:2023-12-01 04:28:24 27 4
gpt4 key购买 nike

我正在将现有的基于 jsp/servlet/portlet(jetspeed) 的应用程序迁移到 spring。我和我的同事是唯一设计、编码、部署和维护应用程序的开发人员(我列出职责的原因不是为了炫耀,而是为了解释我的责任和我的行为的影响)。希望在为时已晚之前对我最初的应用程序设计和架构保持警惕。现有的网络应用程序已在全局范围内使用。我在设计新应用程序时遇到了一些问题。

1) 将应用程序压缩到的 Web 应用程序数量:目前,我有 5 个 Web 应用程序。如果需要,所有这些都可以合并到一个 Web 应用程序中,这有助于避免在迁移到 Spring 时在它们之间共享数据的额外编码。但是,不想在可扩展性和维护方面妥协。例如,不想为单个类更改部署整个 war 文件。我的问题:设计和选择一个与多个网络应用程序时需要考虑哪些因素?

2)webapp之间的数据共享:如果有多个webapp,则需要共享数据。我正在考虑不太抽象的解决方案。我对 spring 比较陌生,目前通过过滤器和两个上下文之间的请求对象在 web 应用程序之间共享数据。能够找到几个帖子,例如( How do you share Spring beans between different Spring contexts? )但在我意识到 Spring 之前,不想以太多抽象结束。但是,我再次意识到,在项目后期实现变更相对困难。我的问题:还有其他方法可以在不同的 Spring 上下文之间共享较少抽象的数据吗?

3) 要使用的 spring 版本。当然是最新的,因为它的功能,但想选择有更多社区支持的一个。我认为在不久的将来我不需要在最新版本中使用 Spring 的所有高级功能。

4) View :我计划通过转换现有的 JSP 来使用 JSTL 作为表示层,因为我已经对此进行了一些研究并且是直接的(较少抽象)。我的问题:除了 JSTL 以外的任何其他技术(例如 JSF)以及您对 JSTL 的建议。

感谢您的宝贵时间。

最佳答案

回答你的问题2。如果你有spring beans可以在不同的应用程序之间共享。我会考虑为其定义一个单独的模块。例如,如果您有 webapp1、webapp2 使用 commons beans 来验证某些业务规则。您可以创建一个名为validation-manager的模块,该模块将打包为jar文件,并作为webapp1和webapp2的依赖项包含在内。

要让 webapp1 和 webapp2 都可以访问 jar 中包含的常见 Bean,您可以在应用程序上下文中配置这些 Bean,如下所示:

验证管理器应用程序上下文配置

<!-- beans definitions shared between webapp1 and webapp2 -->
<bean id="userValidation" class="com.example.UserValidation" />
<bean id="orderValidation" class="com.example.OrderValidation" />

webapp1 配置

<!-- import beans definitions for validation-manager -->
<import resource="classpath:applicationContext-validation-manager.xml" />

<!-- beans definitions specific to webapp1 -->

webapp2 配置

<!-- import beans definitions for validation-manager -->
<import resource="classpath:applicationContext-validation-manager.xml" />

<!-- beans definitions specific to webapp2 -->

这个想法是尽可能模块化您的代码,以便能够在不同的网络应用程序中重用通用功能。

希望有帮助。

关于java - 从 JSP/Servlet/Portlets(Jetspeed) 迁移到 Spring 项目 - 应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18236576/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com