Spring Boot WS应用程序无法加载外部属性

时间:2014-11-25 05:47:10

标签: spring-boot spring-ws

在我的Spring-Boot Web服务应用程序中,我想使用application.properties中定义的值加载名为 appName 的属性。

@Endpoint
public class RasEndpoint {

private static final String NAMESPACE_URI = "http://www.mycompany.com/schema/ras/ras-request/V1";

@Value("${appName}")
private String appName;

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getProductRequest")
@ResponsePayload
public GetProductResponse getProduct(@RequestPayload GetProductRequest request) {

    System.out.println("appName: " + appName);
    GetProductResponse response = generateStubbedOkResponse();
    return response;
}

application.properties具有以下条目

appName=ras-otc

我通过主Application类启动应用程序,如下所示

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

然而,当我运行应用程序时,我收到以下错误

  

引起:java.lang.IllegalArgumentException:无法解决   占位符'appName'在字符串值“$ {appName}”

你们知道我做错了吗?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

正如Dave在上面的评论中提到的,属性文件未加载到类路径中。 属性文件位于/ src / main / resources文件夹中,该文件夹已添加到源中,位于Eclipse IDE中的构建路径下,但是应用了排除规则,阻止将属性文件加载到类路径中。通过删除排除,我能够正确加载属性。