小编cri*_*ris的帖子

@PropertySource 未在使用传统 tomcat war 部署的 Spring Boot 应用程序中获取

我有一个spring boot应用程序到tomcat 8的传统war部署。即使我定义了@PropertySources注释,在@PropertySources中指定的目录中给出的属性文件中定义的属性似乎没有找到。我修改了一个 spring boot web 示例项目,可以复制这个问题。在下面的示例中,调用 Web 控制器的结果始终是“Hello Default,来自 Spring Boot 的问候!”。它永远不会从外部 application.properties 中获取“名称”.property(如果我从类属性文件中完全删除该属性,则部署将失败,因为该属性从未解析)。我错过了什么以至于外部属性似乎没有被拾取?

我的应用程序类:

@SpringBootApplication
@Profile("dev")
@PropertySource(value = "file:/usr/local/tomcat/config/")
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(
            SpringApplicationBuilder builder) {
        return builder.profiles("dev").sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

网页控制器:

@RestController
public class HelloController {

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

    @RequestMapping("/")
    public String index() {
        return "Hello " +name+ ", Greetings from Spring Boot!";
    }
}
Run Code Online (Sandbox Code Playgroud)

src/main/resources/application.properties:

debug=true
logging.level.org.springframework.boot.context=DEBUG
logging.level.org.springframework.boot.env=DEBUG
logging.level.org.springframework.web=DEBUG
name=Default
Run Code Online (Sandbox Code Playgroud)

/usr/local/tomcat/config …

java tomcat spring-boot

5
推荐指数
1
解决办法
9367
查看次数

标签 统计

java ×1

spring-boot ×1

tomcat ×1