本文主要是介绍几种非常常用的方式获取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中的配置 大家看着用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!