10
응용 프로그램이로드 될 때 관리 빈이 JSF 웹 응용 프로그램에서 시작할 때 내부적으로 실행되기를 원합니다. Glassfish에서이 클래스를 작성하고 구성하려면 어떻게해야합니까?시작 관리 Bean을 구성하는 방법은 무엇입니까?
응용 프로그램이로드 될 때 관리 빈이 JSF 웹 응용 프로그램에서 시작할 때 내부적으로 실행되기를 원합니다. Glassfish에서이 클래스를 작성하고 구성하려면 어떻게해야합니까?시작 관리 Bean을 구성하는 방법은 무엇입니까?
CDI가있는 JSF에서 observe 은 application scope입니다.
@Named
@ApplicationScoped
public class App {
public void startup(@Observes @Initialized(ApplicationScoped.class) Object context) {
// ...
}
public void shutdown(@Observes @Destroyed(ApplicationScoped.class) Object context) {
// ...
}
}
손에 OmniFaces 데, 이는 @Eager
로 단순화 될 수있다.
javax.faces.bean
주석 JSF 2.2-에서
@Named
@Eager
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}
는 초기화 eagerly가있는 application scopedmanaged bean 사용.
@ManagedBean(eager=true)
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}
'@ManagedBean (eager = true)'를 사용해 보셨습니까? CDI (@ManagedBean 대신 @Named를 사용하는 경우) 다음과 같이 앱 초기화를 관찰해야합니다. 'public void init (@Observes @Initialized WebApplication webApplication) {//do Something}' (글래스 피시에서는 실제로 이것을 사용하지 않았습니다. jBoss AS 7에서 사용했고 다른 서버에서는 일부 구성이 필요할 수 있습니다.) [this] (http://stackoverflow.com/ 질문/7347516/startup-pojo-on-a-weld-seam3-application) out ... – FMQ