Spring Boot 环境变量读取 和 属性对象的绑定
来源:互联网 发布:死亡照相术知乎 编辑:程序博客网 时间:2024/05/29 06:43
凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的变量。 如:
@Controller @Service 等被Spring管理的类都支持,注意重写的方法 setEnvironment 是在系统启动的时候被执行。 或者如下Controller:
我们还可以通过@ConfigurationProperties 读取application属性配置文件中的属性。
@ConditionOnClass表明该@Configuration仅仅在一定条件下才会被加载,这里的条件是Mongo.class位于类路径上@EnableConfigurationProperties将Spring Boot的配置文件(application.properties)中的spring.data.mongodb.*属性映射为MongoProperties并注入到MongoAutoConfiguration中。@ConditionalOnMissingBean说明Spring Boot仅仅在当前上下文中不存在Mongo对象时,才会实例化一个Bean。这个逻辑也体现了Spring Boot的另外一个特性——自定义的Bean优先于框架的默认配置,我们如果显式的在业务代码中定义了一个Mongo对象,那么Spring Boot就不再创建。
它就是以spring.data.mongodb作为前缀的属性,然后通过名字直接映射为对象的属性,同时还包含了一些默认值。如果不配置,那么mongo.uri就是mongodb://localhost/test。
@Configurationpublic class MyWebAppConfigurer implements EnvironmentAware { private static final Logger logger = LoggerFactory.getLogger(MyWebAppConfigurer.class); private RelaxedPropertyResolver propertyResolver; @Value("${spring.datasource.url}") private String myUrl; /** * 这个方法只是测试实现EnvironmentAware接口,读取环境变量的方法。 */ @Override public void setEnvironment(Environment env) { logger.info(env.getProperty("JAVA_HOME")); logger.info(myUrl); String str = env.getProperty("spring.datasource.url"); logger.info(str); propertyResolver = new RelaxedPropertyResolver(env, "spring.datasource."); String url = propertyResolver.getProperty("url"); logger.info(url); }}
@Controller @Service 等被Spring管理的类都支持,注意重写的方法 setEnvironment 是在系统启动的时候被执行。 或者如下Controller:
@Controllerpublic class PageController implements EnvironmentAware{ @Override public void setEnvironment(Environment environment) { String s = environment.getProperty("JAVA_HOME"); System.out.println(s); }}
我们还可以通过@ConfigurationProperties 读取application属性配置文件中的属性。
@Configuration@ConditionalOnClass(Mongo.class)@EnableConfigurationProperties(MongoProperties.class)public class MongoAutoConfiguration { @Autowired private MongoProperties properties; }
@ConditionOnClass表明该@Configuration仅仅在一定条件下才会被加载,这里的条件是Mongo.class位于类路径上@EnableConfigurationProperties将Spring Boot的配置文件(application.properties)中的spring.data.mongodb.*属性映射为MongoProperties并注入到MongoAutoConfiguration中。@ConditionalOnMissingBean说明Spring Boot仅仅在当前上下文中不存在Mongo对象时,才会实例化一个Bean。这个逻辑也体现了Spring Boot的另外一个特性——自定义的Bean优先于框架的默认配置,我们如果显式的在业务代码中定义了一个Mongo对象,那么Spring Boot就不再创建。
@ConfigurationProperties(prefix = "spring.data.mongodb")public class MongoProperties { private String host; private int port = DBPort.PORT; private String uri = "mongodb://localhost/test"; private String database; // ... getters/ setters omitted}
它就是以spring.data.mongodb作为前缀的属性,然后通过名字直接映射为对象的属性,同时还包含了一些默认值。如果不配置,那么mongo.uri就是mongodb://localhost/test。
0 0
- Spring Boot 环境变量读取 和 属性对象的绑定
- Spring Boot 环境变量读取 和 属性对象的绑定
- Spring Boot 环境变量读取 和 属性对象的绑定
- Spring Boot 环境变量读取 和 属性对象的绑定
- Spring Boot环境变量读取和属性对象的绑定
- Spring Boot 环境变量读取 和 属性对象的绑定
- Spring Boot 环境变量读取 和 属性对象的绑定
- Spring Boot 环境变量读取 和 属性对象的绑定 RelaxedPropertyResolver
- Spring Boot 环境变量读取 和 属性对象的绑定
- 24. Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- 24. Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
- spring boot environmentaware接口实现环境变量读取和属性对象的绑定
- SpringBoot19 之环境变量读取和属性对象的绑定
- Spring boot 十三 读取 环境变量
- spring boot默认配置文件application.properties的属性读取
- Spring boot 过滤返回对象属性遇到的各种坑
- spring boot pojo 对象日期属性问题
- Oracle中dual表的用途介绍
- Activity的view绘制流程
- 详解 C# break ,continue, return
- Mybatis 框架使用的最核心内容(二):mapper.xml中常用的标签详解
- AndroidStudio JNI 开发哪些事儿
- Spring Boot 环境变量读取 和 属性对象的绑定
- Spring框架初探【4】
- ChemDraw使用中的几个小技巧
- [Java] 实验11
- Android之上下文菜单(ContextMenu)
- Label字间间隔
- iOS开发之音频解析第三方框架介绍
- Unity逻辑热更新
- Android自动化测试