【问题标题】:Display properties file location in client code在客户端代码中显示属性文件位置
【发布时间】:2011-06-15 15:53:46
【问题描述】:

我在 applicationContext 文件中声明了一个 bean,如下所示:

<util:properties id="myProperties" scope="prototype" location="file:${catalina.home}/webapps/myProperties.properties"/>

在我的客户端代码中,我使用这个 bean 来检索属性文件,如下所示:

Properties props = context.getBean("myProperties", Properties.class);

这是一个 try catch 块,以防属性文件最初不在正确的位置。

当代码失败时,屏幕上会显示“找不到属性文件”的错误。

我的问题是我是否也可以显示 spring 在客户端代码中查找属性文件的路径?所以我的新错误消息会说:属性文件无法在:' somePath 中找到。

谢谢

【问题讨论】:

  • 好吧,您只需复制您声明的路径即可。那么解决“catalina.home”环境变量有问题吗?
  • 好吧,我想 Windows 和 linux 服务器之间的路径会略有不同。我希望它显示在屏幕上,所以我需要在 context.getBean(...) 调用之后的某个地方调用 getPath。

标签: java spring properties


【解决方案1】:

使用PropertyPlaceholderConfigurer 设置位置并将其注入到您的控制器或其他字段中的另一个bean 中。借助 File 类 getCanonicalFile() 方法将那里的文件名转换为系统相关文件名。

【讨论】:

    【解决方案2】:

    就像user625146 所说,您可以检索系统属性catalina.home 例如(一些伪代码)

    String prop = System.getProperty("catalina.home");
    throw new Error ("msg" + prop + "/webapps/myProperties.properties");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2023-04-01
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 2020-11-15
      相关资源
      最近更新 更多