#java #jsf-2 #glassfish-3 #cdi #managed-bean
#java #jsf-2 #glassfish-3 #cdi #управляемый компонент
Вопрос:
Есть ли какой-либо способ инициализировать именованный компонент, аннотированный javax.inject.Named
/ javax.enterprise.context.ApplicationScoped
как @ManagedBean(eager=true)
из javax.faces
пакета?
@Named
@ApplicationScoped
public Mail() { ... }
Я хочу загружать этот класс при запуске приложения, а не когда webapplication ссылается на этот компонент.
ps. Компонент JSF 2.1
, введенный Glassfish 3.1
Ответ №1:
Вы можете создать расширение CDI, которое имеет параметр @Observes AfterBeanDiscovery в одном из его методов. Там вы можете создать экземпляр bean и, таким образом, инициализировать его при запуске контейнера. CODI упростил для вас эти задачи, см.https://cwiki.apache.org/confluence/display/EXTCDI/Core Usage#CoreUsage-Startup