本文主要是介绍几种非常常用的方式获取springboot中application中的配置 大家看着用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Spring Boot应用中,可以从application.properties或application.yml文件中读取配置参数的方法有好几个,以下是常用的几个工具和方法,简单给大家介绍下
-
Environment接口
Spring框架提供了一个org.springframework.core.env.Environment接口,可以通过注入该接口实例来读取配置属性:@Autowired private Environment env;public void someMethod() {String myProp = env.getProperty("my.property.key"); } -
@Value注解
在类的字段或者方法参数上使用@Value注解可以直接注入配置属性:@Value("${my.property.key}") private String myProperty; -
@ConfigurationProperties注解
Spring Boot提供了一个强大的@ConfigurationProperties注解,可以将配置文件中的多个属性绑定到一个Java Bean上:在配置文件中配置如my.config.property1=xxx,配置不同后缀就可以了@ConfigurationProperties(prefix = "my.config") public class MyConfigProperties {private String property1;// getters and setters... }然后可以将其注入到需要使用的类中,直接当对象使用就完了
@Autowired private MyConfigProperties configProps; -
ConfigurableEnvironment
在Spring Boot应用上下文中,还可以通过ConfigurableApplicationContext来获取ConfigurableEnvironment,进而读取属性:ConfigurableApplicationContext context = ...; // 获取到应用上下文 ConfigurableEnvironment env = context.getEnvironment(); String myProp = env.getProperty("my.property.key");上下文的获取可以直接注入或者用下面这种方式
private final ConfigurableApplicationContext applicationContext;@Autowired public SomeService(ConfigurableApplicationContext applicationContext) {this.applicationContext = applicationContext; } -
Spring Boot的
ApplicationArguments
当然,如果你是在应用启动时需要访问这些属性,也可以在CommandLineRunner或ApplicationRunner实现类中注入ApplicationArguments:@Autowired private ApplicationArguments args;@Override public void run(ApplicationArguments args) throws Exception {String argValue = args.getOptionValues("my-option").get(0);// ... }注意这里获取的是命令行参数,而非
.properties文件中的属性,但如果配置了spring-configuration-metadata.json,则可以通过选项名关联到属性。
龙年快乐~
这篇关于几种非常常用的方式获取springboot中application中的配置 大家看着用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!