如何判断我的Spring启动应用程序是否处于调试模式?

Ada*_*old 2 java spring kotlin spring-boot

我想根据--debug交换机是否存在来修改我的应用程序的工作方式.我在我的@Configuration文件中试过这个:

@Value("\${debug}")
lateinit var debug: String
Run Code Online (Sandbox Code Playgroud)

但是春天说

无法在值"$ {debug}"中解析占位符'debug'

如何查询--debug选项的状态?

And*_*son 7

检查调试模式最有效的方法是查询Environment.这将允许您检测模式是否已启用,无论是通过命令行参数(--debug),系统属性(-Ddebug),环境变量(DEBUG=true)等完成的.

您可以Environment像任何其他依赖项一样注入实例,也可以实现EnvironmentAware.getProperty(String)然后,该方法可用于检索debug属性的值.debug如果debug属性具有非空值,则Spring Boot视为已启用false:

private boolean isSet(ConfigurableEnvironment environment, String property) {
    String value = environment.getProperty(property);
    return (value != null && !value.equals("false"));
}
Run Code Online (Sandbox Code Playgroud)