访问在Web服务器启动期间初始化的Servlet

时间:2015-03-02 16:13:46

标签: spring-mvc servlets servlet-3.0

这与问题有关 How do i get servlet instance from web.xml in my java class

人们不清楚这类问题的用例是什么。我有同样的问题,想给出一个用例。

在我的应用程序中,我有一个名为Configuration的类,它扩展了HttpServlet。在我的web.xml中,我有一个为Configuration定义的load-on-startup servlet。此类读取应用程序所需的所有属性,并且在启动期间读取此属性是绝对必要的,因为我根据属性对Web服务器的每个实例执行了不同的操作。现在我需要在我的弹簧控制器中获取此实例的句柄,以便我可以获取属性的值。我该怎么做?

1 个答案:

答案 0 :(得分:1)

配置是Servlet的具体原因是什么?如果该类的唯一目的是读取稍后要使用的属性,并且它本身不提供任何请求,则它不应该是Servlet。

有两种方法可以执行这些配置类。

首先,您可以将此类注释为@Component,并使该类在启动期间由Spring实例化。然后你可以在任何需要的地方注入这个bean。

第二种方法,不使用Spring,就是在web.xml中注册一个ServletContextListener。创建一个类实现ServletContextListener并在contextInitialized()方法中,调用属性加载逻辑所在的Configuration类的方法。

http://www.mkyong.com/servlet/what-is-listener-servletcontextlistener-example/