- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我习惯了 Spring 框架依赖注入(inject)之类的东西,所以我对 JBoss 真的很陌生。我可能想做一些不可能的事情。
在我们公司,我们从一个具有所有依赖注入(inject)的原型(prototype)开始。我们有一个类是这样声明的:
@ApplicationScoped
public class MessageHandlerImpl implements MessageHandler {
...
}
我将它注入(inject)到另一个类中,如下所示:
@ApplicationScoped
public class MessageReceiverImpl implements MessageReceiver {
@Inject
MessageHandler messageHandler;
...
}
原型(prototype)已被接受,现在我们正在组织这个项目,隔离核心项目上的一些公共(public)代码。
在我们将其分离之前,这些注入(inject)工作正常。关于此问题的更多详细信息已在以下问题上询问:Ambiguous dependency with only one @ApplicationScoped class
我退后一步,考虑也许我正在做的事情对于 Wildfly-swarm 来说是不可能的,或者我正在尝试的整个概念是错误的。
我想做的是在我的核心项目上完成所有 CDI,并且仅在我的依赖项目上将其与 @Inject 注释一起使用。所以在我的依赖项目中我会有类似的东西:
@ApplicationScoped
public class WSClient {
@Inject
MessageReceiver messageReceiver;
...
}
嗯,这不起作用,因为我得到了一个不明确的依赖关系,正如您在我链接的问题上看到的那样。我想知道我是否应该做的是使用生产者或类似的东西。谁能启发我一个有效的方法,或者也许是替代方案?
最佳答案
当您想要以某种可能不同的方式实例化一个类型,然后将其交给 CDI 说“嘿,如果有人注入(inject)这种类型,给他这个实例”(当然是非常简化的版本)时,就会使用生产者)。根据您的描述,您应该足以完成简单的注入(inject)和 bean 创建,我认为不需要生产者。
从你的两个问题中,我可以看出注入(inject)实际上是有效的,但存在一些含糊之处。我的意思是一个注入(inject)点有多个可能的候选点。仅在您的情况下,它们是相同的,这意味着该类必须以某种方式在某个地方加载了两次 - 继续朝这个方向挖掘。
从架构的角度来看,使用 CDI 完全可以(我想说很常见)将核心提取为 CDI 库,然后由项目的其他部分使用。只要确保您的所有文件都被视为“bean 文件”即可。实现这一目标的最简单方法是确保在其中包含 beans.xml
。
关于java - 是否可以将依赖项 CDI 与 Wildfly 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47651029/
我想保护托管在我的 Widlfly AS 上的一些 ejb,所以我开始创建我的安全域。我不想在 ApplicationRealm 上进行身份验证,所以我定义了我的安全领域并将其指向我的安全域。我想将凭
我在 Wildfly 10 上有一个 Web 应用程序 并且在 Web 应用程序目录中,我放置了一个 zip 文件,当用户单击超链接时我想下载该文件。 在我的用户界面上 片段 ','_self')">
我们正在使用 wildfly,在我们的 wildflyhome/standalone/log 目录中,它充满了日志并最终耗尽了磁盘空间。我想设置滚动日志并且知道这是可能的,但只是不知道该怎么做。任何帮
是否可以在 WildFly 10 中配置压缩日志? 无法在此处找到正确的配置: https://docs.jboss.org/author/display/WFLY10/Handlers 最佳答案 日
在开发过程中,我希望能够在 Web 应用程序打开时运行我的 arquillian 测试。两者都使用不同的 WildFly 实例: 我的 Arquillian 测试使用托管(甚至嵌入式)wildfly
我想编写一个脚本来管理 WildFly 启动和部署,但我现在遇到了麻烦。要检查服务器是否已启动,我找到了命令 ./jboss-cli.sh -c command=':read-attribute(na
我们在旧版本中使用 -b 0.0.0.0 来完成此操作。但是当我们在 WildFly 中设置这个地址时,它会失败。在 WildFly-8.2 中执行此操作的替代方法是什么? 最佳答案 按以下方式更改您
在 WildFly 13 中禁用管理控制台的正确方法是什么?我在 http-interface 上设置了 console-enabled="false" 属性,但运行 WildFly 13 后我仍然看
我想向 STOMP 客户端公开我的 WildFly 服务器,但我还没有找到任何最近的样本。据我了解,最近 WildFly 版本中的所有通信都通过单个套接字(默认情况下监听 8080)。我需要更改任何配
我想将 Wildfly 服务器的日志子系统用于我的应用程序。在一些在线博客的帮助下,我在 standalone.xml 中为我的应用程序添加了一个日志配置文件。
从 JBoss 5.1 升级到 WildFly 8.2 后,我收到了下一个错误日志。同时 - 所有工作都有效。 2015-07-13 18:28:35,201 EJB default - 2 ERRO
在 WildFly 13 中禁用管理控制台的正确方法是什么?我在 http-interface 上设置了 console-enabled="false" 属性,但运行 WildFly 13 后我仍然看
我有一个在 Wildfly 8.0.0 Final 上运行的 JavaEE 应用程序。 应用程序使用了很多图像,我不想将它们存储在数据库中,因此将它们写入硬盘。 如何配置 Wildfly/Undert
我之前在 Glassfish 上有过一些代码,但我想将它移植到 WildFly。 但是,我似乎无法让 WildFly 调用该模块。 ServletContextListener初始化模块如下 Auth
Wildfly 和 Java 的初学者,如果这个问题非常基础,我深表歉意。任何帮助将不胜感激。 备注: 启动 Wildfly 服务器没有任何问题。 问题: 我正在尝试从以下位置开始 hello wor
Wildfly 和 Java 的初学者,如果这个问题非常基础,我深表歉意。任何帮助将不胜感激。 备注: 启动 Wildfly 服务器没有任何问题。 问题: 我正在尝试从以下位置开始 hello wor
我正在尝试将 JMC 连接到在 Windows8 机器上作为服务运行的 WildFly,但是当我打开 JMC 时,它不显示正在运行的 Wildfly,只显示运行 jmc 的 jvm。尝试以这种方式连接
有没有人有使用 CLI 在 Wildfly 中设置消息传递子系统的示例脚本? 一个完美的例子是 CLI 需要使用一个运行 standalone.xml 的服务器,在运行 CLI 脚本之后,它有一个在
在 NetBeans 下运行的 WildFly 8.1.0.Final 安装中,我不断收到以下看似随机的错误: 08:51:09,742 ERROR [io.undertow.request] (de
在 Wildfly 11 中部署 test.war 期间,我看到了一些警告: 09:45:32,714 WARN [org.jboss.weld.Validator] (MSC service th
我是一名优秀的程序员,十分优秀!