Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spring Boot 项目后,即使不进行任何配置,该项目也能顺利的运行起来。当然,用户也可以根据自身的需要使用配置文件修改 Spring Boot 的默认设置。

SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。

  • application.properties
  • application.yml

application.properties与 application.yaml都可以作为Spring Boot的配置文件,只是书写格式不同而已,在 Spring Boot 启动时被自动读取。当然也可以同时使用,但同级目录下读取的顺序是先读取application.properties,读取application.yaml。该配置文件的存放路径如下图所示。

本节我们将详细介绍 application.properties的语法及使用

下面是一个简单的 application.properties属性配置文件。

server.port=8080

Properties 语法

properties的语法如下:

  • 使用properties的key=value形式
  • 使用层级递进关系。
  • 从最高层到最低层逐个低级,中间使用点"."间隔

例如:

server.address=localhost/170.20.10.112 #可以写IP或域名
server.port=80 #表示监听的80端口,默认是8080
spring.datasource.driver-class-name=com.mysql.jdbc.Driver #数据库驱动
spring.datasource.url=jdbc:mysql://localhost:3306/cqyddx?useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

Properties常用写法

properties支持以下三种数据结构:

  • 对象:键值对的集合
  • 数组:一组按次序排列的值
  • 字面量:单个的、不可拆分的值

类准备:

注意:使用需要添加依赖

<dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <optional>true</optional>
 </dependency>

User类:

@Data
@AllArgsConstructor
@Component
@ConfigurationProperties(prefix = "user")
public class User {private String username;private Integer age;private Book book;private Date birth;private String[] hobby;private List<String> booksName;private Map<String, Object> books;private Set<Double> salary;public User() {        System.out.println("创建user bean");    }
}

@Data
@AllArgsConstructor
@Component
public class Book {private String bookName;private Double bookPrice;public Book(){System.out.println("创建book bean");}
}

测试类

@SpringBootApplication
public class SpringbootApplication {public static void main(String[] args) {//1、返回IOC容器ConfigurableApplicationContext run = SpringApplication.run(SpringbootApplication.class, args);User user =run.getBean("user",User.class);System.out.println(user.getUsername());System.out.println(user);}
}

properties字面量写法

字面量是指单个的,不可拆分的值,例如:数字、字符串、布尔值、以及日期:date、boolean、string、number、null等。
      在 properties中,使用“key[=]value的形式表示一对键值对(空格不能省略),如 user.username= "xiatian",user.age= 32。

user.username=xiatian is good

user.age=32

user.birth=2020/09/10 13:14:15

properties对象写法

在 properties中,对象可能包含多个属性,每一个属性都是一对键值对。properties 为对象提供了 以下写法:

使用递进表示对象与属性的层级关系。
user.name="xiatian"

user.age=32

properties 数组、List、Map、Set 行内写法

#数组行内写法
user.hobby=篮球,足球,排球

#list集合行内写法
user.booksname=计算机基础,javaEE框架,springboot

#map的行内写法
user.books.chinese={key1=spring,key2=springmvc,key3=springboot,key4=springcloud,0=活着,1=孙子兵法,2=诗经,hz=活着,szbf=孙子兵法,sj=诗经}

#set的行内写法
user.salary=6000,7000,8000

测试结果如下:

User(

username=xiatian is good,

age=32,

book=Book{bookName='springboot', bookPrice=102.0},

birth=Thu Sep 10 13:14:15 CST 2020,

hobby=[篮球, 足球, 排球],

booksName=[计算机基础, javaEE框架, springboot],

books={

chinese={

key1=spring,

key2=springmvc,

key3=springboot,

key4=springcloud,

0=活着,

1=孙子兵法,

2=诗经,

hz=活着,

szbf=孙子兵法,

sj=诗经}

},

salary=[6000.0, 7000.0, 8000.0]

);

properties  数组、List、Map、Set 非行内写法 及 复合结构写法

#数组写法    使用[x]表示数组中的元素,写法如下:
user.hobby[0]=篮球
user.hobby[1]=足球
user.hobby[2]=排球

#list集合写法  使用[x]表示集合中的元素,写法如下:
user.booksname[0]=计算机基础
user.booksname[1]=javaEE框架
user.booksname[2]=springboot

##map集合的key value  使用key表示map中的key,写法如下:
user.books.key1=spring
user.books.key2=springmvc
user.books.key3=springboot
user.books.key4=springcloud

#map集合的value是map形式 使用chinese[key]表示map中的key为map类型,写法如下:
user.books.chinese[0]=活着
user.books.chinese[1]=孙子兵法
user.books.chinese[2]=诗经

#map集合的value是map形式 使用chinese.xxx表示map中的key为map类型,写法如下:
user.books.chinese.hz=活着
user.books.chinese.szbf=孙子兵法
user.books.chinese.sj=诗经

#set集合以下标方式赋值  使用[x]表示集合中的元素,写法如下:
user.salary[0]=6000
user.salary[1]=7000
user.salary[2]=8000

#复合结构写法   使用递进表示对象与属性的层级关系
user.book.bookName=springboot
user.book.bookPrice=102

测试结果如下:

User(
    username=xiatian is good,
    age=32,
    book=Book{bookName='springboot', bookPrice=102.0},
    birth=Thu Sep 10 13:14:15 CST 2020,
    hobby=[篮球, 足球, 排球],
    booksName=[计算机基础, javaEE框架, springboot],
    books={
     chinese={
       key1=spring,
       key2=springmvc,
       key3=springboot,
       key4=springcloud,
       0=活着,
       1=孙子兵法,
       2=诗经,
       hz=活着,
       szbf=孙子兵法,
       sj=诗经}
    },
    salary=[6000.0, 7000.0, 8000.0]
);

06全局配置文件application.yaml详解

https://blog.csdn.net/qq_41946216/article/details/124770687?spm=1001.2014.3001.5501

05全局配置文件application.properties详解相关推荐

  1. 06全局配置文件application.yaml详解

    Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spring Boot 项目后,即使不进行任何配置,该项目也能顺利的运行起来.当然,用户也可以 ...

  2. SpringBoot application.properties 详解

    一.配置属性的定义 1.1 我们可以在 application.properties 中添加类似如下这样简单的常量配置: my.name=张富 my.age=20 1.2 配置属性之间也可以相互引用使 ...

  3. [转]application.properties详解 --springBoot配置文件

    本文转载:http://blog.csdn.net/lpfsuperman/article/details/78287265###; # spring boot application.propert ...

  4. application.properties详解 --springBoot配置文件

    转载侵删:https://blog.csdn.net/lpfsuperman/article/details/78287265 以下为链接原文 # spring boot application.pr ...

  5. springboot集成freemarker 配置application.properties详解

    #配置freemarker详解#spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attr ...

  6. freemaker中配置文件freemarker.properties详解

    2019独角兽企业重金招聘Python工程师标准>>> classic_compatible=true              ##如果变量为null,转化为空字符串,比如做比较的 ...

  7. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务,因为是入门示例,所以设置极其简单,只需修改$CATALINA_HOME/conf/server.xml文件为如下内容即可 ...

  8. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  9. springboot中配置文件application.properties的配置详情,数据源配置

    pring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下.Sping Boot的全局配置文件 ...

最新文章

  1. ASP.NET中绑定枚举类型
  2. python 传感器数据结构_Python常用的数据结构详解
  3. 天籁obd接口针脚定义_OBD协议介绍
  4. python手册中文版apk-python怎么打包apk
  5. react小测试忘记一个细节不显示
  6. 第二章 GuassDB 数据库基础知识
  7. 实时流处理系统容错机制(一):综述
  8. 【CyberSecurityLearning 68】python 编写exp
  9. 【转载保存】Lucene7.1.0超详细的使用文档
  10. abaqus编写本构方程vumat_abaqusvumat子程序
  11. 【优化求解】基于matlab遗传算法求解资源配置优化问题【含Matlab源码 436期】
  12. 140.单词拆分II
  13. vc2012编译speex (编译通过)
  14. 全新开发萝卜影视源码金色版 视频影视系统APP源码
  15. 网易云音乐代码如何写入html,如何将网易云音乐加入到自己的网站!
  16. Android——ViewHolder
  17. 随机森林的原理分析及Python代码实现
  18. php网易云歌曲获取,网易云音乐cookie获取
  19. linux设置法语键盘布局,法语键盘布局图.doc
  20. pr爱情模板,2.14情人节爱情告白视频模板素材

热门文章

  1. 软件测试项目实战之性能测试篇,软件测试项目实战之性能测试篇
  2. 小米MIX2“掉包门”波及上百人,京东霸气回应:我们赔
  3. 仓央嘉措的《见与不见》
  4. 计算机的两大设计思想
  5. RenderScript:简单实现动态模糊效果
  6. 如何实现英文字母的点击添加的递增
  7. windows下的命令框执行任务卡住的解决办法
  8. 【操作系统】内存泄漏和内存溢出
  9. 基于Carsim和simulink联合仿真的路径跟踪测试
  10. Yikesnews第17期: Joomla!3.7.0注入漏洞||新勒索软件 - UIWIX||黑客已将加勒比海盗5公开...