springboot profile_SpringBoot简单配置

    使用Spring Boot,配置工作将会变得更加简单,我们只需要在application.properties中定义属性,然后在代码中直接使用@Value注入即可。 

如下:

book.author=xxxbook.name=yyy book.pinyin=测试

    这里专门设置了中文,因为中文不做特殊处理会乱码,处理方式为继续在application.properties中添加如下代码:

server.tomcat.uri-encoding=UTF-8spring.http.encoding.charset=UTF-8spring.http.encoding.enabled=truespring.http.encoding.force=true spring.messages.encoding=UTF-8

    然后 在IntelliJ IDEA中依次点击File -> Settings -> Editor -> File Encodings 

将Properties Files (*.properties)下的Default encoding for properties files设置为UTF-8,将Transparent native-to-ascii conversion前的勾选上。

    在变量中通过@Value直接注入就行了,如下:

@Value(value = "${book.author}")    private String bookAuthor;    @Value("${book.name}")    private String bookName;    @Value("${book.pinyin}")    private String bookPinYin;

类型安全的配置

刚刚说的这种方式我们在实际项目中使用的时候工作量略大,因为每个项目要注入的变量的值太多了,这种时候我们可以使用基于类型安全的配置方式,就是将properties属性和一个Bean关联在一起,这样使用起来会更加方便。我么来看看这种方式怎么实现。

1.在src/main/resources文件夹下创建文件book.properties

文件内容如下:

book.name=红楼梦book.author=曹雪芹book.price=28

2.创建Book Bean,并注入properties文件中的值

代码如下:

@Component@PropertySource(value= "book.properties")@ConfigurationProperties(prefix = "book")public class BookBean {        private String name;        private String author;        private String price;        public String getName() {              return name;    }        public void setName(String name) {              this.name = name;    }        public String getAuthor() {              return author;    }        public void setAuthor(String author) {              this.author = author;    }        public String getPrice() {              return price;    }        public void setPrice(String price) {              this.price = price;    }}

prefix是指前缀,location指定要注入文件的位置。

3.添加路径映射

在Controller中添加如下代码注入Bean:

@Autowiredprivate BookBean bookBean;

添加路径映射:

@RequestMapping("/book")    public String book() {          return "Hello Spring Boot! The BookName is "+bookBean.getName();}

运行效果如下: 

b41dda69576619fc2cc209725962a0f2.png

日志配置

    默认情况下Spring Boot使用Logback作为日志框架,也就是我们前面几篇博客中用到的打印日志方式,当然如果有需要我们可以手动配置日志级别以及日志输出位置,相比于我们在Spring容器中写的日志输出代码,这里的配置简直就是小儿科了,只需要在application.properties中添加如下代码:

logging.file=/home/sang/workspace/log.loglogging.level.org.springframework.web=debug

上面表示配置日志输出位置,下面配置日志级别。

Profile配置问题

    Spring Boot 提供了更为简洁的方式。全局Profile配置我们使用application-{profile}.properties来定义,然后在application.properties中通过spring.profiles.active来指定使用哪个Profile。

1.在src/main/resources文件夹下定义不同环境下的Profile配置文件,文件名分别为application-prod.properties和application-dev.properties,这两个前者表示生产环境下的配置,后者表示开发环境下的配置,如下:

ca7a61c0844670bb54a896e37e63eff6.png

application-prod.properties:

server.port=8081

application-dev.properties:

server.port=8080

然后在application.properties中进行简单配置,如下:

spring.profiles.active=dev

这个表示使用开发环境下的配置。然后运行项目,我们得通过8080端口才可以访问: 

5cd544c817d7bded68d27a9a74bed16b.png

如果想换为生产环境,只需要把spring.profiles.active=dev改为spring.profiles.active=prod即可,当然访问端口这时也变为8081了,如下:

8fbe0187e7a6f5ccbe574cd0ff60403a.png

SpringBoot配置时,也可以用yml来配置,用yml来配置的话,结构相对要清晰很多。

    注意点:

1,原有的key,例如

server.port

,按“.”分割,都变成树状的配置

server:  prot: 8081

2,key后面的冒号,后面一定要跟一个空格

#application.ymlserver:  port: 8080   spring:    datasource:        name: test        url: jdbc:mysql://127.0.0.1:3306/test        username: root        password: xxx

两者的区别

1.内容格式比较:

    .properties文件,通过.来连接,通过=来赋值,结构上,没有分层的感觉,但比较直接。

    .yml文件,通过:来分层,结构上,有比较明显的层次感,最后key赋值的:后需要留一个空格

2.执行顺序

    如果工程中同时存在application.properties文件和 application.yml文件,yml文件会先加载,而后加载的properties文件会覆盖yml文件。所以建议工程中,只使用其中一种类型的文件即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cc9.3 indesign_InDesign2018mac中文版_Adobe InDesign CC 2018 for mac官方版 - 17软件下载

Adobe InDesign CC 2018 Mac简体中文版,版本号:V13.1.0.76,软件采用了全新的启动界面,更新和改进众多功能。并且支持多国语言版本:中文,英文,韩文,日本等多国语言。安装方法&#xf…

大工14秋《计算机应用基础》在线测试2,2017大工《计算机应用基础》在线测试2答案.doc...

大工17秋《计算机应用基础》在线测试2答案?1: 单选题 (4分)在Excel 2010中,存储数据的表格被称为()。A: 文件B: 文件夹C: 工作表D: 图表2: 单选题 (4分)在Excel 2010中,图表是()。A: 用户通过“绘图”工具栏的工具绘制的特殊图形B: 由数据清单生成的用于形象表现数据的图形C: …

druid jar包_使用druid实现Spring boot配置文件中数据库密码密文存储

通常在编写代码的时候,数据库的用户名和密码以明文的方法写到配置文件中,系统运维为了保证一定的安全性,要求我们在配置文件中使用密文的方式存储,本文主要介绍使用druid实现数据库密码密文显示的方法。一、基本情况druid包中Conf…

嵌入式linux python移植过程_嵌入式linux项目开发(一)——BOA移植

嵌入式linux项目开发(一)——BOA移植项目目标:使用BOA、CGIC、SQLite搭建嵌入式web服务器一、嵌入式web服务器BOA简介在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器&am…

html课做一个网页,菜鸟自学建站 HTML 第三课 制作我的第一个网页_html/css_WEB-ITnose...

上一课我们了解了Dreamweaver的工作界面,从这节课开始,我们由浅入深的开始学习网页的制作。首先打开Dreamweaver,制作网页首先要新建一个文档,就像我们写文稿需要一张纸一样。只有有了载体,你才能在上面进行创作&#…

k8s 手动恢复redis 集群_高工面试之:redis的几种集群方式你都熟悉吗?

Redis三种集群方式:主从复制、哨兵模式和Cluster模式一、主从复制模式Redis配置成主从模式,主库(Master)只负责客户端的写数据,从库(Slave)只负责客户端的读数据。主从数据复制过程如图所示:主从复制原理:slave redis连…

mock模拟接口测试 vue_Easy Mock以及Vue+Mock.js模拟数据

Easy Mock以及VueMock.js模拟数据一、Mock.js简介Mock.js是一个可以模拟后端数据,也可以模拟增删改查操作的js库基础语法规范数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:name|rule: value语法规则说明name|min-max: string…

excel转html中文乱码,英文系统中Excel中文乱码问题

我是先用Gridview导出,然后再转换格式,部分代码如下StringWriter sw new StringWriter();HtmlTextWriter htw new HtmlTextWriter(sw);GV.RenderControl(htw);File.WriteAllText(path"temp", sw,System.Text.Encoding.UTF7);Excel.Applicati…

jsbridge原理_React Hooks 原理与最佳实践

1. 前言React Hooks 是 React 16.8 引入的新特性,允许我们在不使用 Class 的前提下使用 state 和其他特性。React Hooks 要解决的问题是状态共享,是继 render-props 和 higher-order components 之后的第三种状态逻辑复用方案,不会产生 JSX 嵌…

html小圆图堆叠轮播,每次移一张图片的无缝轮播图

my动画轮播图*{list-style: none;margin: 0px;padding: 0px;}.carousel{width: 530px;height: 280px;overflow: hidden;position: relative;}.carousel .imgList{width: 9999px;position: absolute;}.carousel .imgList>li{float: left;}.carousel .imgList>li>img{wi…

mfc绘制bezier b样条三种曲线_生存曲线(二):SPSS和Origin绘图教程及相关问题

上期生存分析推送后,有粉丝在后台问:有发生率的情况,为什么要做生存曲线分析?举个例子:临床试验中,共招募30位胃腺癌患者,均分为3组,分别使用了A/B/C三套不同的治疗方案,…

8位可控加减法电路设计_高级工程师:相同的地线GND,却有不同的电路设计含义...

问一个简单而又很难回答的电路问题:电路中的地线GND,它的本质是什么?工程师,在研发设计一个电路项目时,一般会经历三个阶段:电路项目PCBA板1,项目方案论证项目方案论证,是在项目前期…

word刷子刷格式_Excel技巧—开始菜单之格式刷六大功能

点赞再看,养成习惯千里之行,始于足下今天我们主要学习的是“第一区块-剪贴板”中的“格式刷”。“格式刷”主要将一个对象的颜色、字体样式、字体大小、边框样式等所有格式复制到目标对象上,我们可以把它理解为格式的复制粘贴。说到“格式刷”…

html/css题库,DIV+CSS题库

CD2、在CSS语言中下列哪一项是"左边框"的语法?(C )A、border-left-width:B、border-top-width:C、border-left:D、border-top-width:3. 选出你认为最合理的定义标题的方法( C )A. 文章标题B.文章标题C.文章标题D. 文章标题4、在CSS语言中下列哪一项的适用…

紫金计算机网络,南京理工大学紫金学院《计算机网络技术》考试复习试题试题(含答案解析)2...

一、选择题:(每题2分,共40分)1.在TCP/IP参考模型中,TCP协议工作在()。A、应用层B、传输层C、互联网层D、网络接口层2.下列()是合法的E-mail地址。A、mnetworkhttp://www.doczj.com/doc/fe7e6e475ebfc77da26925c52cc58b…

go语言和python结合_Go+Python双语言混合开发-第1章 【阶段一:Go语言基础】

1-1 GoPython双语言混合开发-课程导学 (11:35)1-2 课程资源获取方式 - 非常重要!!! (06:07)1-3 课程中需要用到的开发环境介绍 (03:47)1-4 windows中安装centos7虚拟机 (19:16)1-5 xshell的安装和使用 (04:14)1-6 git的安装和配置 (06:22)1-7…

cwinthread*线程指针怎么销毁结束_最新版Web服务器项目详解 01 线程同步机制封装类...

点 击 关 注 上 方"两猿社"设 为"置 顶 或 星 标",干 货 第 一 时 间 送 达。互 联 网 猿 | 两 猿 社基础知识RAIIRAII全称是“Resource Acquisition is Initialization”,直译过来是“资源获取即初始化”.…

您的计算机无法访问dota2,解决win7系统DOTA2无法连接至Steam网络的设置方法

随着电脑的使用率越来越高,我们有时候可能会遇到win7系统DOTA2无法连接至Steam网络问题,如果我们遇到了win7系统DOTA2无法连接至Steam网络的问题,要怎么处理win7系统DOTA2无法连接至Steam网络呢?接下来给大家带来win7系统DOTA2无法…

根据经纬度计算范围_高中地理必修一二三思维导图+计算公式全汇总!能用3年...

必修一必修二必修三计算公式1.经纬度计算:经度差与地方时差算经度——地方时每相差1小时,经度相差1;纬差法与正午太阳高度算纬度——正午太阳相差多小,纬度相差多少;北极星的仰角即地平高度等于当地地理纬度;经纬线上长度算经纬度——1经线长…

linux 系统 可视化工具实时监控_Linux上的实时监控平台-你需要这样做

应朋友们要求,介绍上Linux系统下的实时监控平台,在上次提到了glances,它提供了较多的监控指标,那如果我们要看历史数据呢?某一时间段的回放呢?显然glances是做不到的。因此,实时监控平台就应运而…