如何显示服务器启动时加载的属性

时间:2012-05-25 17:27:43

标签: spring

有人知道如何显示服务器启动时加载的属性(通过一些Listener或类似的东西)?

这就是我所拥有的:

1-带有配置参数的名为 project.properties 的文件。

2- ...由Spring加载:

<context:property-placeholder location="WEB-INF/project.properties" />

3-我认为一个监听器可以是一个适当的位置来读取声明的属性并记录它们。

public class StartListener implements ServletContextListener {

    Logger logger = LoggerFactory.getLogger(this.getClass().getName()); 

    public void contextInitialized(ServletContextEvent sce) {
        //Here read the properties and do the logging of it
    }
//...   
}

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:1)

根据我的说法,您需要做的是当服务器启动时,您想要记录一些属性。

首先要实现此目的,您需要在dispatcher-servlet.xml文件中添加以下行。

<context:annotation-config />

然后在您要加载属性并记录它们的任何方法之上使用 @PostConstruct 注释。您可以在应用程序的任何控制器或服务类中执行此操作。

执行此操作时,弹簧将自动检测此注释,并且每当完成加载应用程序时,它将调用此函数并执行您在此处描述的任何操作。

希望这会对你有所帮助。

干杯。

答案 1 :(得分:0)

谢谢,但最后,我要在听众中这样做:

public class StartListener implements ServletContextListener {

    Logger logger = LoggerFactory.getLogger(this.getClass().getName()); 

    public void contextInitialized(ServletContextEvent sce) {
        ServletContext sc = sce.getServletContext();

        Properties props = new Properties();
        try {
            props.load(sc.getResourceAsStream("/WEB-INF/project.properties"));
            logger.info(props.entrySet().toString());
        } catch (Exception e) {
            logger.error("......");
        }
    }

    //...

}