dump springboot配置属性

cqoc49vn  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(398)

这个问题在这里已经有答案了

卸载Spring引导配置(3个答案)
4个月前关门了。
我需要从正在运行的示例中转储springboot应用程序属性,可以吗?为什么我需要它:我正在使用 -Dspring.profiles.active=profilea,profileb 链接纵断面,但其中一个属性设置不正确。谢谢

l0oc07j2

l0oc07j21#

这里有同样的问题:转储spring引导配置
由此总结:没有内在的机制。但我也很好奇是否有人知道。
但当您启动时,可以使用system.getproperties()并将它们打印到日志文件中。

package org.example;

import org.slf4j.*;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class JwtEvaluatorApplication implements ApplicationRunner {

    Logger log = LoggerFactory.getLogger(getClass());

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

    @Override
    public void run(ApplicationArguments args) throws Exception {
        List<String> cmdArg1 = args.getOptionValues("cmdArg1");
        if (cmdArg1 != null && cmdArg1.size() > 0) {
            System.setProperty("cmdArg1", cmdArg1.get(0));
        }

        logPropeties();
    }

    void logPropeties() {
        for (Object key : System.getProperties().keySet()) {
            log.info(key + ":  " + System.getProperty(key.toString(), "not defined"));
        }
    }
}

稍后在另一个类中,您可以通过以下方式访问它:

String cmdArg1 = System.getProperty("cmdArg1");

相关问题