java - 用 Hibernate/Guice/Wicket 替换 Hibernate/Spring/Spring MVC 堆栈

标签 java spring spring-mvc wicket guice

我有一个使用 Hibernate/Spring 和 Spring MVC 的应用程序,但作为学习和比较差异的动机,我想将该应用程序移植到 Hibernate/Guice/Wicket。

我的问题非常基本,但我从哪里开始呢?我应该先替换 Spring 层,然后替换 Spring MVC 层吗?

两者可以在同一环境中工作吗?这样我就可以从编辑一个 Controller / View 开始,然后进行扩展,我该怎么做?

最佳答案

  1. 从 View 开始:

    无论如何,如果没有 Spring,Spring MVC 将无法工作。由于其他层不依赖于其 API(嗯,至少不应该),表示层应该是最容易更改的(尽管需要花费大部分精力,因为它将包含一个完整的 API)重新实现)。

  2. Spring 之后去:

    a) 如果您不使用 Spring 的太多实用程序类(*Template、*DaoSupport 等)或基础设施(事务管理、安全性),迁移到 Guice 可能需要重写(XML 或注释) -based)Guice 模块/注释中的配置,因为纯粹的依赖注入(inject)(如果不可移植)几乎是直接在框架之间映射的。

    b) 如果您确实使用 Spring 的实用程序类和基础设施(您可能会这样做,因为这就是使用 Spring 而不是无增值的另一个依赖注入(inject)容器的全部意义...),你必须以某种方式将它们迁移到 Guice。如果您打算逐步执行此操作,您可以在两者之间寻找一些集成(可能使用 Guice 的 Spring 基础设施),并且在迁移依赖项后,切换到 Guice 本地拦截器实现(以及测试、测试、测试,因为行为上的微小差异可能会破坏您的应用程序)。 This other question可能会提供一些这方面的提示。

  3. 然后, hibernate :

    由于您将保留 Hibernate,因此其配置不应受到转换的影响。当您将基础架构和配置迁移到 Guice 时,只有其 Bootstrap 会发生变化。如果可以避免的话,我不建议保留两个并行的 SessionFactory。

关于java - 用 Hibernate/Guice/Wicket 替换 Hibernate/Spring/Spring MVC 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7306189/

相关文章:

java - 更新时记录的日期时间被设置为向后 3 小时

java - 将内容推送到 Facebook、Twitter、linkedin、youtube 和 vimeo 等社交网站

java - 删除每次迭代中的连续字符显示意外错误

java - 使用 REST 和 HttpClient 访问 Facebook API

java - Java 中使用 if else 逻辑的自动化测试流程

java - OneToMany 上的重复条目

java - Spring MVC : PropertyEditor throwing exception, 无法设置值

java - Jsoup 从 HTML 内容中提取 Hrefs

spring - Kotlin Spring boot @ConfigurationProperties 用于列表

spring - Docker Kerberos WebHDFS 身份验证异常 : Unauthorized