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

Spring boot Spring Boot WS应用程序无法加载外部属性,spring-boot,spring-ws,Spring Boot,Spring Ws,在我的Spring Boot Web Service应用程序中,我想加载名为appName的属性,该属性的值在application.properties中定义 @Endpoint public class RasEndpoint { private static final String NAMESPACE_URI = "http://www.mycompany.com/schema/ras/ras-request/V1"; @Value("${appName}") private Str

在我的Spring Boot Web Service应用程序中,我想加载名为appName的属性,该属性的值在application.properties中定义

@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
我通过主应用程序类启动应用程序,如下所示

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}
但是,当我运行应用程序时,我得到以下错误

原因:java.lang.IllegalArgumentException:无法解析 字符串值“${appName}”中的占位符“appName”

你们知道我做错了什么吗


感谢您的帮助。

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

很难说。如果我不得不猜测的话,我可能会说,要么你的属性文件不在类路径上(可能是IDE刷新),要么你没有真正用这个主方法启动你的应用程序。嗨,Dave,这是一个非常正确的观点,你让我朝着正确的方向思考。虽然Eclipse IDE在类路径中添加了src/main/resources,但却排除了*.properties,这就是问题的根源。现在都修好了。非常感谢你的意见。