【发布时间】:2014-07-21 14:39:53
【问题描述】:
我想创建一个包含一些服务的共享项目 jar。这些服务应该使用属性文件。
理想情况下,我只是想稍后在将共享 jar 作为依赖项添加到其他项目时使用这些服务。我不想做任何进一步的配置,比如导入共享属性文件等等。
在共享 jar 中,我想使用 Spring 注入属性。但是我该怎么做呢?
项目-commons/src/main/java:
@Service
public class MyService {
@Value("${property.value}") private String value;
public String getValue() {
return value;
}
}
project-commons/src/main/resources/application.properties:
property.value=test
项目-web/src/main/java:
@Component
public class SoapService {
@Autowired
private MyService service;
//should return "test"
public String value() {
return service.getValue();
}
}
当我运行它时:
Illegal character in path at index 1: ${property.value}
所以,属性文件没有被解析。但是如何让spring在使用合适的服务时自动使用呢?
【问题讨论】:
-
你有加载属性的配置吗?
-
不,应该吗?在另一个项目中注入此服务时,我宁愿不必配置任何东西。
-
是的,否则使用属性的模块将不知道它们应该被加载。想想应用程序上下文是如何工作的。