当我尝试加载源代码中的属性文件时,我遇到了问题。但是当我尝试从外部加载属性文件时,它工作正常。下面提到了工作和不工作的代码。有人可以帮我解决这个问题。我是春天的新手:)
我为从外部和项目内部加载属性文件所做的唯一更改是 context:property-placeholder 中的位置声明。
配置弹簧上下文以从外部加载属性文件,如下所示。它工作得很好。
从外部加载属性文件时 -工作:
<context:property-placeholder location="file:///C:/Test/Data/WebDetails.properties"
ignore-resource-not-found="true" ignore-unresolvable="true" order="1" />
我将我的属性文件配置为在 spring 上下文中从项目加载,如下所示 -不工作:
<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 项目中。文件看起来像
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 文件