我们的Ops人员希望在应用程序启动时将Spring Boot配置(即所有属性)转储到日志文件中。我假设这可以通过使用annotation@ConfigurationProperties注入属性并打印它们来实现。
问题是是否有更好或内置的机制来实现这一目标。
考虑到似乎并没有一个内置的解决方案,除此之外,我还试着自己做饭。以下是我的想法:
@Component
public class ConfigurationDumper {
@Autowired
public void init(Environment env){
log.info("{}",env);
}
}
这样做的挑战在于它不会打印application.yml中的变量。相反,我得到的是:
StandardServletEnvironment
{
activeProfiles=[],
defaultProfiles=[default],
propertySources=[
servletConfigInitParams,
servletContextInitParams,
systemProperties,
systemEnvironment,
random,
applicationConfig: [classpath: /application.yml]
]
}
如何修复此问题,以便加载和打印所有属性?
如果您使用执行器,env
endpoint将为您提供在ConfigurableEnvironment
中设置的所有配置属性,configprops
将为您提供@ConfigurationProperties
的列表,但不在日志中。
看看这个env
endpoint的源代码,可能它会给你一个如何获得你感兴趣的所有属性的想法。
我有一个带应用程序的spring boot应用程序。属性文件和spring数据jpa。在应用程序中,我有一个外部依赖项,需要加载外部Spring项目的bean,该项目具有基于xml的配置。外部xml有自己的组件扫描和spring jpa设置,可以与应用程序中提供该DB属性的其他DB进行交互。属性文件,我正在使用@ImportResources将其bean注入父应用程序。但是,当我在做这个sprin
从这份官方文件中,很难确定这两个模块之间有什么区别。 谁能提供一个官方和规范的答案来解释两者的区别吗?
我需要添加测试到我的Spring Boot项目。使用rails框架有开发和测试数据库,它们是在新项目启动时创建的。迁移应用于两个数据库以保持数据库模式相等。不幸的是,我没有找到关于如何在Spring Boot中配置测试环境数据库以及如何使数据库结构等于dev的留档。 在Spring Boot测试的最佳实践是什么?如何为测试环境设置和添加测试数据?有什么例子吗?
我正在尝试为SSO配置Spring Boot和Keycloak。我已经创建了一个基本的AngularJS应用程序,它对Spring boot后端执行一些请求。使用此 Angular应用程序工作得很好,现在我正尝试在这里跟踪新的Spring Boot Keycloak apdater文档 这是我的keycloak.json,它在WEB-INF文件夹中。 以下是我的安全配置: 即使用户没有任何此角色,
我有一个设置,我正在使用以下内容: Spring靴1.5。13使用Spring云版本Edgware。S3 我有Spring云配置服务器,我的Spring启动应用程序是它的客户端 每个应用程序都有一个引导程序。带有配置服务器uri和一些其他属性的yml 在码头工人群上运行集装箱 我目前正在通过一个自定义脚本将Swarm secrets传递给客户端,该脚本读取放入/run/secrets/中的文件,并
我有一个旧的Spring启动应用程序(1.5.0-FINAL),我无法更改此版本。我想将redis添加到我的应用程序中,这就是我所做的: 1) 添加了maven dep: 2)将属性添加到我的引导 3) 添加了配置属性以检查是否启动连接: 上面的主机/端口不存在:我只想在启动时看到类似“连接错误”的东西,以确保我配置了所有内容,但没有显示任何内容!spring boot似乎没有尝试使用缓存。 我错