我们有一个非常复杂的 JSF 托管 bean 配置文件,如下所示。
有什么方法可以将其转换为某种 CDI 配置?
现在,当我们使用它时@Inject
,AbcConfigFactory
它不会初始化配置文件中的值。我想这是因为我们使用 CDI 来初始化它,而不是 JSF ......或类似的东西。:)
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>AbcConfig</managed-bean-name>
<managed-bean-class>com.a.b.c.AbcConfigFactory</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<managed-property>
<property-name>abcSites</property-name>
<list-entries>
<value-class>com.a.b.c.SiteConfigBean</value-class>
<value>#{SiteConfig$A}</value>
<value>#{SiteConfig$B}</value>
</list-entries>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>SiteConfig$A</managed-bean-name>
<managed-bean-class>com.a.b.c.SiteConfigBean</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>siteName</property-name>
<value>A</value>
</managed-property>
<managed-property>
<property-name>starConfig</property-name>
<property-class>com.a.b.c.StarConfigBean</property-class>
<value>#{StarConfig$A}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>SiteConfig$B</managed-bean-name>
<managed-bean-class>com.a.b.c.SiteConfigBean</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>siteName</property-name>
<value>B</value>
</managed-property>
<managed-property>
<property-name>starConfig</property-name>
<property-class>com.a.b.c.StarConfigBean</property-class>
<value>#{StarConfig$A}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>StarConfig$A</managed-bean-name>
<managed-bean-class>com.a.b.c.StarConfigBean</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<managed-property>
<property-name>siteName</property-name>
<value>A</value>
</managed-property>
</managed-bean>
</faces-config>