Вы можете использовать eager=true
в объявлении @ManagedBean
.
@ManagedBean(eager=true)
@ApplicationScoped
public class Config {
// ...
}
Таким образом, бин будет автоматически создан при запуске веб-приложения.
Вместочто вы также можете использовать Application#evaluateExpressionGet()
для программной оценки EL и, таким образом, для автоматического создания компонента, если это необходимо.См. Также пример по этому ответу .
FacesContext context = FacesContext.getCurrentInstance();
Confic config = (Config) context.getApplication().evaluateExpressionGet(context, "#{config}", Config.class);
// ...
Вы также можете просто ввести его как @ManagedProperty
компонента, в котором он вам нужен.
@ManagedBean
@RequestScoped
public class Register {
@ManagedProperty("#{config}")
private Config config;
@PostConstruct
public void init() {
// ...
}
// ...
}
JSF автоматически создаст его перед внедрением в родительский компонент.Он доступен всеми способами, кроме @PostConstruct
.