Spring boot 入门二:Spring Boot配置文件详解
一、自定义属性
当我们创建一个springboot项目的时候,系统默认会为我们在src/main/java/resources目录下创建一个application.properties。同时也支持yml格式,可以将application.properties 改成
application.yml.以下以yml格式作为配置文件格式
my:
name: yida
age: 18
在java文件中读取配置文件的值只需要加@Value(“${属性名}”)
@RestController
public class HelloController {
@Value("${my.name}")
private String name;
@Value("${my.age}")
private int age;
@RequestMapping("/testProperties")
public String testProperties() {
return "my name is " + name + " my age is " + age;
}
}
启动spring boot 在浏览器输入 http://localhost:8082/testProperties ,浏览器显示
my name is yida my age is 18
二、将配置文件的属性赋给实体类
当我们有很多配置属性的时候,这时我们会把这些属性作为字段来创建一个javabean,并将属性值赋予给他们,比如:
my:
name: yida
age: 18
number: ${random.int}
uuid : ${random.uuid}
max: ${random.int(10)}
value: ${random.value}
greeting: hi,i'm ${my.name}
创建一个java bean:
@Component
@ConfigurationProperties(prefix = "my")
public class ConfigBean {
private String name;
private int age;
private int number;
private String uuid;
private int max;
private String value;
private String greeting;
//提供 get set 方法 ,这里就不贴出来了
}
通过注解@ConfigurationProperties(prefix = "my") 将配置文件(这里是默认的配置文件application.properties 或 application.yml,后续会讲如何指定配置文件)绑定到java bean
写一个应用类测试一下
@RestController
public class HelloController {
@Autowired
private ConfigBean configBean;
@RequestMapping("/testConfigBean")
public String testConfigBean() {
return configBean.getGreeting() + " >>>>" + configBean.getName() + " >>>>" + configBean.getUuid() + " >>>>" + configBean.getMax();
}
}
启动spring boot 在浏览器输入 http://localhost:8082/testConfigBean 浏览器显示
hi,i'm yida >>>>yida >>>>4845e8a3-8b75-43a2-9029-b916674f0b94 >>>>9
三、自定义配置文件
上面介绍的是我们都把配置文件写到application.yml中。有时我们不愿意把配置都写到application配置文件中,这时需要我们自定义配置文件,比如test.properties:
org.pangu.name=yida
org.pangu.age=18
将属性值赋给java bean
@Component
@ConfigurationProperties(prefix = "org.pangu")
@PropertySource(value = "classpath:test.properties")
public class User {
private String name;
private int age;
}
通过注解指定配置文件@PropertySource(value = "classpath:test.properties")
写一个应用类测试一下
@RestController
public class HelloController {
@Autowired
private User user;
@RequestMapping("/testUser")
public String testUser() {
return user.getName() + ">>>" + user.getAge();
}
}
在浏览器输入 http://localhost:8082/testUser 浏览器显示
yida>>>18
四、多个环境配置文件
在现实的开发环境中,我们需要不同的配置环境;格式为application-{profile}.properties,其中{profile}对应你的环境标识,比如:
application-test.properties:测试环境
application-dev.properties:开发环境
application-prod.properties:生产环境
如何使配置文件生效,只需要我们在application.yml中加:
spring:
profiles:
active: prod
并且在application-prod.properties 中添加配置
server.port=8082
则端口就由原来默认的8080端口变为8082
启动spring boot 输入http://localhost:8080 和http://localhost:8082进行验证
Spring boot 入门二:Spring Boot配置文件详解的更多相关文章
- (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)
LAMP搭建之二:apache配置文件详解(中英文对照版) # This is the main Apache server configuration file. It contains the # ...
- Spring Boot2 系列教程 (五) | yaml 配置文件详解
自定义属性加载 首先构建 SpringBoot 项目,不会的看这篇旧文 使用 IDEA 构建 Spring Boot 工程. 首先在项目根目录 src >> resource >&g ...
- struts2(二)之配置文件详解与结果视图
前言 前面介绍了struts2的一个程序的大概流程,还有它的配置文件. 一.struts.xml文件元素详解 1.1.package元素 1)作用 在struts2的配置文件中引入了面向对象思想,使用 ...
- Spring Boot入门(二):获取配置文件值
本篇博客主要讲解下在Spring Boot中如何获取配置文件的值. 1. 使用yaml配置文件 Spring Boot默认生成的配置文件为application.properties,不过它也支持ya ...
- Spring Boot系列教程四:配置文件详解properties
一.配置随机数,使用随机数 在application.properties文件添加配置信息 #32位随机数 woniu.secret=${random.value} #随机整数 woniu.numbe ...
- Mybatis学习(二)————— 全局配置文件详解
一.全部配置内容 SqlMapConfig.xml的配置内容和顺序如下,顺序不能乱.现在来对这些属性的意思一一进行讲解. 二.properties 作用:引用java属性文件中的配置信息,比如,加载连 ...
- FastDFS分布式文件系统配置文件详解
一.tracker配置文件详解: # is this config file disabled# false for enabled# true for disableddisabled=false# ...
- Tomcat的配置文件详解
Tomcat的配置文件详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Tomcat的配置文件 Tomcat的配置文件默认存放在$CATALINA_HOME/conf目录中, ...
- apache配置文件详解与优化
apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...
随机推荐
- matplotlib实现三维柱状图
matplotlib实现三维柱状图 import cv2 img = cv2.imread("1.png", 0) #特征点在图片中的坐标位置 m = 448 n = 392 im ...
- 《Vue 编程房内考》
古人有云:码农爱coding,则为之计深远. 众人问:何为之? 古人曰:底层.算法和架构. 众木然. 古人又曰:多看源码. 以下内容是我在学习 Vue-2.5.2 源码时的一个总结. 第一章 活捉Vu ...
- Jmeter 多台机器产生负载及问题解决方法
JMeter 使用多台机器产生负载的操作步骤如下: 关于linux环境运行jmeter,分布式测试 见 http://www.51testing.com/html/55/383255-847895.h ...
- iOS —— GCD 详解
一.什么是GCD Grand Central Dispatch (强大的中枢调度器) ,是异步执行任务的技术之一.纯C语言,有很多强大的函数. 二.GCD的优势 (1)GCD是苹果公司为多核并行运算提 ...
- h5在线1v1客服|web在线客服系统|h5即时聊天
网上有很多环信.美恰之类的客服系统,最近也使用h5+css3+fontJs+swiper+wcPop等技术架构开发了一个在线客服(1v1沟通聊天),可以应用到在线临时聊天.在线咨询等情景.实现了消息. ...
- Excel中线性规划求解
Excel中线性规划求解(如下图) 1. 设置目标输出单元格(蓝线线) 2. 设置线性规划模型目标函数中自变量(红线线) 3. 设置约束条件(黑色线) 4 如果目标函数中自变量要求是非负数,则勾选绿 ...
- 剑指offer二十七之字符串的排列
一.题目 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 二.思路 我们 ...
- 【bat/cmd】脚本开发
0. 开篇 bat/cmd 均是window操作系统下,两者都是通过文本方式编辑,创建以及查看.均是命令的集合.bat与cmd有什么区别呢 ? 1) cmd文件允许使用的命令比bat多,但是只有在wi ...
- WSGI学习系列WebOb
1. WSGI Server <-----> WSGI Middleware<-----> WSGI Application 1.1 WSGI Server wsgi ser ...
- Android 手势识别—缩放
上一篇讲解了手势识别中的点击和双击事件的识别,用到的是GestureDetector类和GestureDetectorCompat类,用于监听用户触摸屏幕中的简单动作. 缩放 基本用法如下,可以通过缩 ...