WildFly 12.0.0.Final搭配Weld 3.0.3.Final如何启用CDI 2.0?
启用CDI 2.0在WildFly 12.0.0.Final + Weld 3.0.3.Final的方法
嘿,我之前刚好折腾过这个组合的CDI版本切换,给你说下具体怎么操作,其实步骤很清晰:
临时启用(启动时指定):
启动WildFly的时候,直接在启动命令里加上系统属性参数就行。比如Linux/macOS环境用:./standalone.sh -Dcdi.version=2.0Windows环境则用:
standalone.bat -Dcdi.version=2.0这个方式适合临时测试,不过每次启动都要手动加参数。
永久配置(修改服务器配置文件):
如果想让配置永久生效,不用每次启动都额外加参数,可以修改WildFly的核心配置文件(比如独立模式下的standalone/configuration/standalone.xml,域模式下的domain/configuration/domain.xml)。找到文件里的<system-properties>节点,添加如下配置:<property name="cdi.version" value="2.0"/>保存文件后重启WildFly,配置就会自动生效了。
验证CDI版本是否切换成功:
不确定配置有没有生效的话,可以在你的应用里加一段简单的代码验证:import javax.enterprise.inject.spi.CDI; public class CDIVersionChecker { public void printCDIVersion() { String specVersion = CDI.current().getBeanManager().getSpecVersion(); System.out.println("当前使用的CDI版本:" + specVersion); } }运行后如果控制台输出
2.0,就说明已经成功切换到CDI 2.0了。
补充一句:WildFly 12搭配Weld 3的时候,默认是兼容CDI 1.2的,所以必须通过这个cdi.version属性显式指定,才能启用CDI 2.0的全部特性,这个是官方认可的切换方式哦。
内容的提问来源于stack exchange,提问作者NOTiFY
相关产品推荐
相关产品推荐

