Sping Boot入门到实战之入门篇(三):Spring Boot属性配置
<util:properties id="demoProps" location="classpath:demo.properties" />
引入属性文件。再定义一个Bean来读取这些属性,Bean配置:
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod" value="包名.DemoUtil.init" />
<property name="arguments">
<list>
<ref bean="demoProps" />
</list>
</property>
</bean>
Bean定义:
public class DemoUtil {
private static Properties properties;
static void init(Properties props) {
properties = props;
}
public static String getValue(String key){
return properties.getProperty(key);
}
}
在其它地方通过DemoUtil.getValue()方法来访问具体某个属性的值。
- 如果有使用devtools,devtools 全局设置的属性(用户目录 ~/.spring-bootdevtools.properties)
- 测试类的注解@TestPropertySource
- 测试类属性注解 @SpringBootTest#properties
- 命令行参数
- SPRING_APPLICATION_JSON里的属性(环境变量或系统属性)
- ServletConfig初始化参数
- ServletContext初始化参数
- JNDI参数 java:comp/env
- Java系统属性 System.getProperties()
- 操作系统环境变量
- RandomValuePropertySource 配置的属性 random.*
- jar包外部的applictaion-{profile}.properties,applictaion-{profile}.yml配置文件
- jar包内部的applictaion-{profile}.properties,applictaion-{profile}.yml配置文件
- jar包外部的applictaion.properties,applictaion.yml配置文件
- jar包内部的applictaion.properties,applictaion.yml配置文件
- @Configuration类上的 @PropertySource注解指定的配置文件
- 默认属性: SpringApplication.setDefaultProperties
java -jar springboot-demo-properties.jar --my.name=command_line_devlink
该参数值将会覆盖应用其它地方的同名属性配置值。命令行参数放在xx.jar 的后面。
java -Dmy.name=system_properties_devlink -jar springboot-demo-properties.jar
Java系统属性放在java命令之后。
my.name=devlink
my.list[0]=aaa //配置列表
my.list[1]=bbb
.yml文件属性配置格式:
my:
name: devlink
list: //配置列表
- aaa
- bbb
yml中,属性名与值之间冒号后面必须有空格。
- jar包所在当前目录下的子目录/config
- jar包所在当前目录
- classpath根目录下的子目录/config
- classpath根目录
@Value("${my.name}")
private String myName;
可以指定默认值,如 @Value("${my.gender:f}"), 当my.gender未配置时,默认使用值"f"
@Configuration
@ConfigurationProperties(prefix = "my")
public class MyConfig {
private String name;
getter/setter;
}
然后在需要访问的Bean中,通过@Autowired 注入MyConfig实例,通过getName()方法即可访问my.name属性值。
@Autowired
private Environment env;
然后调用env.getProperty("my.name")访问。
Sping Boot入门到实战之入门篇(三):Spring Boot属性配置的更多相关文章
- Sping Boot入门到实战之入门篇(一):Spring Boot简介
该篇为Spring Boot入门到实战系列入门篇的第一篇.对Spring Boot做一个大致的介绍. 传统的基于Spring的Java Web应用,需要配置web.xml, applicationCo ...
- Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置
该篇为Sping Boot入门到实战系列入门篇的第四篇.介绍Spring Boot自动化配置的基本原理与实现. Spring Boot之所以受开发者欢迎, 其中最重要的一个因素就是其自动化配置特性 ...
- Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用
该篇为Spring Boot入门到实战系列入门篇的第二篇.介绍创建Spring Boot应用的几种方法. Spring Boot应用可以通过如下三种方法创建: 通过 https://start.spr ...
- xgboost入门与实战(原理篇)
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
- Spring Boot入门篇(基于Spring Boot 2.0系列)
1:概述: Spring Boot是用来简化Spring应用的初始化开发过程. 2:特性: 创建独立的应用(jar|war形式); 需要用到spring-boot-maven-plugin插件 直接嵌 ...
- Spring Cloud实战 | 第十篇 :Spring Cloud + Seata 1.4.1 + Nacos1.4.0 整合实现微服务架构中逃不掉的话题分布式事务
Seata分布式事务在线体验地址:https://www.youlai.store 本篇完整源码地址:https://github.com/hxrui/youlai-mall 有想加入开源项目开发的童 ...
- Spring Cloud实战 | 第十一篇:Spring Cloud Gateway 网关实现对RESTful接口权限控制和按钮权限控制
一. 前言 hi,大家好,这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT实现的统 ...
- [Spring Cloud实战 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权
一. 前言 本篇实战案例基于 youlai-mall 项目.项目使用的是当前主流和最新版本的技术和解决方案,自己不会太多华丽的言辞去描述,只希望能勾起大家对编程的一点喜欢.所以有兴趣的朋友可以进入 g ...
- Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Axios前后端分离模式下无感刷新实现JWT续期
一. 前言 记得上一篇Spring Cloud的文章关于如何使JWT失效进行了理论结合代码实践的说明,想当然的以为那篇会是基于Spring Cloud统一认证架构系列的最终篇.但关于JWT另外还有一个 ...
随机推荐
- shopnc验证码显示不了
data/config文件编码问题,要utf-8无bom
- html动态生成的代码,绑定事件
如果使用jQuery,你可以这样写: // .class为你绑定事件的动态生成的结点 $(document).on('click', '.class', function() { // 你要绑定的事件 ...
- z-index是什么样式?
称作层级样式表 通过 z-index样式,设置重叠样式 z-index 垂直屏幕的层级,数字越大,越上层,可以设置多层样式,效果是俯览 需要联合 position: relative; positi ...
- 实现iota函数
void Reverse(char *s) { char temp; char *p = s; char *q = s; while (*p != '\0') { p ++; } q --; whil ...
- 二叉查找树C++实现
二分查找树特点: (1) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值: (2) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值: (3) 任意节点的左.右子树 ...
- Git: 本地创建版本库用于多处同步
问题背景 目前有一个 Android 和 一个 iOS 项目,两个项目底层使用相同的 C++ 代码.由于在开发迭代中代码时常更新,而且往往是今天 Android 部分修改一小部分,明天 iOS 部分修 ...
- commons-logging的使用
简介 commons-logging是Apache commons类库中的一员.Apache commons类库是一个通用的类库,提供了基础的功能,比如说commons-fileupload,comm ...
- Windows脚本相关
1 获取IP地址 echo StartChangeIPFile echo 获取主机名 for /f %%i in ('hostname') do (set pcName=%%i) ::ping %pc ...
- 【转】三大UML建模工具Visio、Rational Rose、PowerDesign的区别
本文转自http://developer.51cto.com/art/201006/207993.htm UML建模工具相信大家有所了解,那么你对UML建模工具Visio .Rational Rose ...
- javascript-声明对象及其属性和方法
/* 方法一 */ var p = new Object(); //声明对象 //为对象添加属性 p.width=300; p.height=400; p.num=4; p.autotime=3; / ...