OpenLiberty 共享库和 CDI

OpenLiberty shared libraries and CDI

OpenLiberty 提供共享库的奇妙功能,可以在服务器中部署一次,然后(非常瘦且快速重新部署)WAR 可以在 运行 时访问它们。另一方面,CDI提供了减少bean扫描的机制,例如:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee">
    <scan>
        <exclude name="com.mycompany.nonecdi.**"/>    
    </scan>
</beans>

我的问题是——两者如何相互作用:

  1. 在完全没有 CDI 扫描器限制的情况下,Openliberty CDI 扫描器是否会在 WAR 部署时检查 bean 的共享库?
  2. CDI 扫描器可以从共享库中引用包吗?

Open Liberty 支持共享库。如果在共享库中指定了 beans.xml 或 bean 定义注释(例如 @ApplicationScoped 等),则 CDI 运行时将找到 bean。因此,共享库可以在 Open Liberty 和 WebSphere Liberty 中使用 CDI。