主要问题:
有人能告诉我如何使用Spring在Java代码中检索值,以便从applicationContext.xml中的context:property-placeholder标记指定的任何属性文件中获取值吗?
详细说明:
我对Spring很陌生。试图用它来检索可配置的属性,让我的应用程序连接到一个(可配置的)JMS队列。
我有一个使用Spring的Java/J2EE Web应用程序。
在src/main/resources/applicationContext.xml中,我有以下行:
<context:property-placeholder location="classpath:myapp.properties" />
然后,在src/main/resources/myapp.properties文件中,我有以下行:
myservice.url=tcp://someservice:4002
myservice.queue=myqueue.service.txt.v1.q
我遇到的问题是,我一辈子都不知道如何将www.example.com中定义的myservice.url的值导入myapp.properties正在运行的java代码中。
我尝试了一个静态函数[在应用程序中调用]:
public static String getProperty(String propName)
{
WebApplicationContext ctx =
FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance());
Environment env = ctx.getEnvironment();
retVal = env.getProperty(propName);
return retVal;
}
然而,当它返回一个填充的环境对象“env”时,env.getProperty(propName)方法返回null。
1条答案
按热度按时间eqzww0vc1#
好吧-非常非常感谢Rustam给了我所需要的线索。我解决这个问题的方法是这样的:
在src/main/resources/applicationContext.xml中,我有以下行:
然后,在src/main/resources/myapp.properties文件中,我有以下行:
然后我有一个类如下:
然后,在applicationContext.xml中有以下声明:
完成此操作后,我可以在代码中使用以下行:
因此,configInfo对象将使用分配给“myservice.url”和“myservice.queue”的值进行填充,这些值可以通过以下方法调用进行检索:
和