Spring spring.groovy.template.cache 不使用 application.properties 启动

Spring Boot not using application.properties for spring.groovy.template.cache

我有一个非常简单的 Spring 引导应用程序,class 下面有详细说明。

我的问题是 application.properties 文件及其自动配置方式。我试图通过设置 'spring.groovy.template.cache: false' 来获取 Groovy 模板以在开发中更新,但这不起作用。我添加了另外两个属性来查看是否正在读取 application.properties 文件。 'logging.level.org.springframework.web: ERROR' 仍然会导致 INFO 级别的消息打印到控制台。但是,some.prop 在应用程序启动时被正确读入 MyBean class。

是否缺少这些属性的配置声明?

src/main/resources/application.属性:

spring.groovy.template.cache: false
logging.level.org.springframework.web: ERROR
some.prop: bob

src/main/java/sample/MyBean.java:

@Component
public class MyBean {

    @Value("${some.prop}")
    private String prop;

    public MyBean() {}

    @PostConstruct
    public void init() {
        System.out.println("================== " + prop + "================== ");
    }
}

和src/main/java/sample/Application.java:

@SpringBootApplication
public class Application {

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

和src/main/java/sample/com/example/MainController.java

@Controller
public class MainController {

    @RequestMapping(value="/login", method = RequestMethod.GET)
    public ModelAndView risk(@RequestParam Optional<String> error) {
        return new ModelAndView("views/login", "error", error);
    }

}

您似乎漏扫描了您的包裹 "sample"。请确保您已扫描它。

@ComponentScan({
     "sample" })
@SpringBootApplication
public class Application {

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

此外,您的 application.properties 是正确的。没问题。

看起来解决方案比我想象的要简单得多:

gradle bootRun 

应该用于热重载模板

gradle 运行 不起作用(所有编译的 类 都只是在 build/ 中构建)