【问题标题】:JEE server that supports hexagonal/ port and adapters architecture支持六边形/端口和适配器架构的 JEE 服务器
【发布时间】:2018-06-08 13:00:19
【问题描述】:

我想在端口和适配器架构(也称为洋葱、六边形或干净架构)中编写 JEE 应用程序。 所以我想通过接口而不是实现来注入依赖项。当然,实现是在单独的 Maven 模块中而不是接口中。

问题是wildfly 不支持这个。您知道任何无需任何管道配置即可在该基础架构中工作的服务器吗?

任何帮助。

【问题讨论】:

标签: java jakarta-ee containers hexagonal-architecture


【解决方案1】:

Ports & Adapters 架构模式只需要一种机制来应用依赖倒置原则来注入依赖。您甚至可以在引导应用程序时手动执行此操作。你根本不需要 JEE。无论如何,我不是 JEE 专家,但我认为您可以使用 Inject 注释来做到这一点,类似于 Spring 中的 Autowired。

【讨论】:

  • 问题是,当有单独的 maven 模块 /jars 时,wildfly 无法在没有部署描述的情况下处理这个问题。在单个 jar/模块中它可以工作
  • @masterdany88 在 Spring 中,如果您有具有不同上下文的不同 jar,您可以将它们集成到一个层次结构中,以便您可以使用来自其他上下文的 bean。也许您在 JEE 中有类似的东西?一定有办法的。如果没有,您可以手动完成。或者如果你使用 Java 9 模块,你可以使用服务来实现依赖注入,而不需要任何框架。
【解决方案2】:

使用 jee 有几个示例,但没有任何东西可以为您提供 Spring 的依赖注入功能......

您可以看看这个使用 dropwizard 将所有内容粘合在一起的示例:https://github.com/moifort/play-with-hexagonal-architecture

【讨论】:

  • 在这个项目中没有 EJ'sB 的Injection。 JEE 只有 JAX-RS。不过谢谢。这个项目给了我很多DDD实践知识。
  • 注入是在“控制器”的主应用程序文件RestApplication.java中管理的,你可以看到构造函数期望服务不是注入而是构造的
  • 无论如何,DDD 和使用 Spring 的洋葱架构都非常好
  • 一定是JEE。你能准确地发布一下注射吗? @Inject 还是 @EJB?
  • 依赖注入是一个概念而不是注解。你想用洋葱/六边形架构实现的是依赖倒置原则。这是一个很好的例子codeproject.com/Articles/1090953/Dependency-Inversion-in-Java我告诉你的课程无论如何都会被评论(不多但足够;))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多