Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过Spring framework(v4.0.3)从数据库加载应用程序属性_Java_Spring - Fatal编程技术网

Java 如何通过Spring framework(v4.0.3)从数据库加载应用程序属性

Java 如何通过Spring framework(v4.0.3)从数据库加载应用程序属性,java,spring,Java,Spring,我试图弄清楚如何通过Spring(4.0.3)从数据库表加载所有应用程序属性。现在,我的应用程序有一组属性文件(大约十几个)。对于每个环境,这些属性文件都是重复的(不是值)。采取以下行动: config.jar 发展 无误代码.属性 外部代码。属性 report.properties email.properties 试验 无误代码.属性 外部代码。属性 report.properties email.properties 刺激 无误代码.属性 外部代码。属性 report.prop

我试图弄清楚如何通过Spring(4.0.3)从数据库表加载所有应用程序属性。现在,我的应用程序有一组属性文件(大约十几个)。对于每个环境,这些属性文件都是重复的(不是值)。采取以下行动:

config.jar

  • 发展
    • 无误代码.属性
    • 外部代码。属性
    • report.properties
    • email.properties
  • 试验
    • 无误代码.属性
    • 外部代码。属性
    • report.properties
    • email.properties
  • 刺激
    • 无误代码.属性
    • 外部代码。属性
    • report.properties
    • email.properties
下面是xml配置中的一个片段:

<util:properties id="inboundErrorCodes"                 
   location="classpath:config/${spring.profiles.active}/inErrCodes.properties"/>
<util:properties id="outboundErrorCodes"                 
   location="classpath:config/${spring.profiles.active}/outErrCodes.properties"/>
<util:properties id="reportProperties"                 
   location="classpath:config/${spring.profiles.active}/report.properties"/>
<util:properties id="emailProperties"                 
   location="classpath:config/${spring.profiles.active}/email.properties"/>
还有几个其他的警告。errorCodes文件中的某些属性具有相同的密钥。比如说

inErrorCodes.properties
    error.code.1001=bad file name.

outErrCodes.properties
    error.code.1001=bad header info.
理想情况下,所有密钥在所有文件中都是唯一的,但这是一个遗留应用程序。所以我希望实现的是拥有一个数据库表(来自所有环境的jndi,本地除外,它只是一个数据源)。该表可能看起来像(表名=应用程序属性)

还有几件事。我更喜欢使用注释而不是xml配置。我想找到一种方法使属性可以重新加载。如果数据库中更新了其中一个值,那么如果我可以调用Spring函数来重新加载,或者甚至调用一些池机制,那就太好了。当然,这可以代替重新启动应用程序。此外,上面提到的${spring.profiles.active}是一个JVM变量(在应用服务器控制台中设置),必须在每个环境中设置。任何指点都将不胜感激。我在Spring@PropertySource上搜索了很多,但找不到任何与我尝试的内容相关的内容


再次感谢,

我希望这能对您有所帮助,它不适用于4.0.3,但可以工作


我希望这能对您有所帮助,它不适用于4.0.3,但可以工作


非常感谢您为我指出此资源。这无疑有助于我更好地理解如何连接属性文件和数据库表中的属性。我希望通过注释完成大部分spring配置。关于PropertySource Spring注释有什么想法吗?再次感谢您的帮助。非常感谢您为我指出此资源。这无疑有助于我更好地理解如何连接属性文件和数据库表中的属性。我希望通过注释完成大部分spring配置。关于PropertySource Spring注释有什么想法吗?再次感谢你的帮助。
inErrorCodes.properties
    error.code.1001=bad file name.

outErrCodes.properties
    error.code.1001=bad header info.
id          key              value           category
==    ===============    =============     ============
 1    error.code.1001    bad file name.    inErrorCodes
 2    error.code.1001    bad header info.  outErrorCodes
 3    default.subject    Successful order     email
 4    sales.title        NE Sales Region     report