1 回答

TA貢獻(xiàn)1784條經(jīng)驗 獲得超2個贊
CDI/JSF/EJB不可用?使用 ServletContextListener
@WebListenerpublic class Config implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { // Do stuff during webapp's startup. } public void contextDestroyed(ServletContextEvent event) { // Do stuff during webapp's shutdown. }}
@WebListener
/WEB-INF/web.xml
<listener> <listener-class>com.example.Config</listener-class></listener>
ServletContext#setAttribute()
#getAttribute()
.
public void contextInitialized(ServletContextEvent event) { event.getServletContext().setAttribute("config", this); // ... }
protected void doGet(HttpServletRequest request, HttpServletResponse response) { Config config = (Config) getServletContext().getAttribute("config"); // ... }
${config}
有CDI嗎?使用 @Observes
在……上面 ApplicationScoped.class
import javax.enterprise.context.ApplicationScoped;@ApplicationScopedpublic class Config { public void init(@Observes @Initialized(ApplicationScoped.class) ServletContext context) { // Do stuff during webapp's startup. } public void destroy(@Observes @Destroyed(ApplicationScoped.class) ServletContext context) { // Do stuff during webapp's shutdown. }}
@Inject
@Named
#{config}
JSF可用嗎?使用 @ManagedBean(eager=true)
import javax.faces.bean.ManagedBeanimport javax.faces.bean.ApplicationScoped;@ManagedBean(eager=true)@ApplicationScopedpublic class Config { @PostConstruct public void init() { // Do stuff during webapp's startup. } @PreDestroy public void destroy() { // Do stuff during webapp's shutdown. }}
#{config}
EJB可用嗎?考慮 @Startup
@Singleton
@Startup@Singletonpublic class Config { @PostConstruct public void init() { // Do stuff during webapp's startup. } @PreDestroy public void destroy() { // Do stuff during webapp's shutdown. }}
@EJB
@Singleton
另見:
添加回答
舉報