【发布时间】:2015-06-29 14:12:05
【问题描述】:
我有一个非常简单的 Spring Boot 应用程序,其类如下详述。
我的问题在于 application.properties 文件以及它们如何自动配置。我试图通过设置'spring.groovy.template.cache:false'来让Groovy模板在开发中更新,但这不起作用。我添加了另外两个属性以查看是否正在读取 application.properties 文件。 'logging.level.org.springframework.web: ERROR' 仍然会导致 INFO 级别的消息打印到控制台。但是, some.prop 在应用程序启动时被正确读入 MyBean 类。
这些属性是否缺少我的配置声明?
src/main/resources/application.properties:
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);
}
}
【问题讨论】:
-
我没用过“:”,可能有些参数不接受,需要用“=”代替?
-
Marged 是对的。冒号与 YAML 一起使用,属性文件需要等号
-
它们的工作方式应该完全相同。事实上,Github 上的 springboot 示例项目(spring-boot/spring-boot-samples/spring-boot-sample-web-groovy-templates)在其 application.properties 文件中使用了 ':'。但是,我进行了测试,但使用 '=' 仍然无法正常工作。
-
您是只使用自动配置还是有一些自定义配置会干扰/禁用自动配置?
-
不应该有任何禁用或干扰的东西。 Application.java 是我拥有的除一个控制器之外的唯一 src 文件(使用控制器编辑的问题)。
标签: spring groovy spring-boot