У нас есть очень сложный файл конфигурации для управляемых bean-компонентов JSF, который выглядит следующим образом.
Есть ли способ конвертировать это в какую-то конфигурацию CDI?
Теперь, когда мы используем @Inject
на AbcConfigFactory
, он не инициализирует значения из файла конфигурации. Я думаю, это потому, что мы используем CDI для его инициализации, а не JSF ... или что-то в этом роде. :)Преобразование JSF с управляемым свойством в CDI
<?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>
Я ** думаю ** мы используем XML-конфигурацию, чтобы упростить настройку приложения. Но я не уверен здесь. – Pierre