gpt4 book ai didi

java - 如何在 Spring Boot 1 应用程序中查找未使用的属性

转载 作者:行者123 更新时间:2023-11-30 01:52:52 25 4
gpt4 key购买 nike

在 Spring Boot 1 应用程序中是否有办法了解 Spring Boot 应用程序使用的有效属性与使用 YAML 设置的所有属性、系统属性...

理想情况下,我希望在 ApplicationListener 类中检测到这一点,并在我们的框架中维护任何过时的属性时阻止应用程序启动。

提前感谢您的帮助,

埃里克

最佳答案

当我有相同的要求时,我所做的是创建自己的 PropertyPlaceholderConfigurer:

public class DisplayablePropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {

private static final Logger log = LoggerFactory.getLogger(DisplayablePropertyPlaceholderConfigurer.class);

private int processedNum;

private HashSet<String> propertyNames = new HashSet<>();

@Override
protected void doProcessProperties(ConfigurableListableBeanFactory beanFactoryToProcess, StringValueResolver valueResolver) {
super.doProcessProperties(beanFactoryToProcess, valueResolver);
}

@Override
protected String resolvePlaceholder(String placeholder, Properties props, int systemPropertiesMode) {
return super.resolvePlaceholder(placeholder, props, systemPropertiesMode);
}

@Override
protected String resolvePlaceholder(String placeholder, Properties props) {
propertyNames.add(placeholder);
return super.resolvePlaceholder(placeholder, props);
}

@Override
protected String resolveSystemProperty(String key) {
return super.resolveSystemProperty(key);
}

public HashSet<String> getPropertyNames() {
return propertyNames;
}
}

然后,您可以注册一些 CommandLineListener 或 ApplicationEvent 监听器以在应用程序启动时调用 getPropertyNames()。

之后您将获得已使用属性的列表。这是一个很好的开始,不是吗?您可以对两个列表进行排序并进行比较,以过滤掉未使用的属性。

关于java - 如何在 Spring Boot 1 应用程序中查找未使用的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55474926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com