【发布时间】:2020-11-13 13:58:18
【问题描述】:
我一直在做一个需要使用application.yml进行配置的spring-boot项目
application.yml 文件位于目录src/main/resources 下。
这是文件的内容:
spring:
main:
banner-mode: off
application:
name: XX
datasource:
username: admin
password: 1234
driverClassName: XXXX
url: XXXX
在配置类中,每个字段都有变量。
@Component
@ConfigurationProperties
public class GlobalConfig {
private String name;
private String username;
private String password;
private String driverClassName;
private String url;
// getters&setters
这是运行文件:
@SpringBootApplication
@Configuration
@PropertySource("application.yml")
@EnableConfigurationProperties
public class Application implements CommandLineRunner {
private GlobalConfig globalConfig;
@Autowired
public void setGlobalConfig(GlobalConfig globalConfig) {
this.globalConfig = globalConfig;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) {
System.out.println(globalConfig);
}
虽然应用程序username字段中的所有其他变量都是正确的,但有一些与操作系统的用户相关的内容。
预期 toString -> GlobalConfig{name='XX', username='admin', password='1234', driverClassName='XXX', url='XXX'}
实际toString -> GlobalConfig{name='XX', username='user', password='1234', driverClassName='XXX', url='XXX'}
PS:字母X 不表示其为空。他们已经有人了!
我已经检查了一些类似的问题,但这个案例没有答案。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
如何从
application.yml文件中填充GlobalConfig? -
我已经更新了问题并添加了跑步者文件。我一直在使用
CommandLineRunner。
标签: spring spring-boot yaml