当我尝试加载源代码中的属性文件时,我遇到了问题。但是当我尝试从外部加载属性文件时,它工作正常。下面提到了工作代码和非工作代码。有人可以帮我这个。我是春天的新蜜蜂:)
我从外部和项目中加载属性文件所做的唯一更改是上下文中的位置声明:property-placeholder。
配置弹出上下文以从外部加载属性文件,如下所示。它工作得非常好。
从外部加载属性文件 - 工作:
<context:property-placeholder location="file:///C:/Test/Data/WebDetails.properties"
ignore-resource-not-found="true" ignore-unresolvable="true" order="1" />
我将属性文件配置为在spring上下文中从项目加载,如下所示 - Not Working :
<bean id="webProperties" class="com.test.run.WebProperties" />
<context:property-placeholder location="file:./src/main/resources/WebDetails.properties"
ignore-resource-not-found="true" ignore-unresolvable="true" order="1" />
我的WebDetails.properties位于src / main / resources下的Maven Project中。文件看起来像
url = www.testresponse.com
space = SampleSpace
并在WebProperties中映射属性值,如下所示
@Component
public class WebProperties{
@Value("{url}") public String url;
@Value("{space}") public String space;
//getters
}
我的主要课程是:
public class ProcessWeb {
ApplicationContext context;
WebProperties webProperties;
}
public ProcessWeb () {
context = new ClassPathXmlApplicationContext("web-context.xml");
webProperties= (WebProperties) context.getBean("webProperties");
}
public void execute(String[] args){
webProperties.getURL()
}
public static void main(String args[])
{
ProcessWeb main = new ProcessWeb ();
main.execute();
}
当我从代码加载属性时执行我的主类。我收到错误 $ {url}(系统无法找到指定的文件。)
如何在占位符中配置我的位置路径?
更多信息:将从批处理文件中调用主类ProcessWeb。部署代码后,当我们从命令提示符执行该批处理文件时,外部属性也会遇到同样的问题。是否需要更改任何配置?我们将代码打包到jar文件中
答案 0 :(得分:2)
使用classpath
之类的:
location="classpath:WebDetails.properties"