一、SpringBoot配置文件类型

SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话 ,就可以自己编写配置文件进行相应配置,起步依赖spring-boot-starter-parent 中,有配置文件的引入,如下:

<resource><filtering>true</filtering><directory>${basedir}/src/main/resources</directory><includes><include>**/application*.yml</include><include>**/application*.yaml</include><include>**/application*.properties</include></includes>
</resource>

可以看到,${basedir}/src/main/resources 表示资源的加载文件,资源文件包括下面三种格式的,也就是说,咱们在配置SpringBoot资源文件的时候都是以 application*.yml、application*.yaml、application*.properties文件格式,.yml 和 .yaml 文件相同,而且在配置的时候一般都以 application 命名,所以SpringBoot配置文件可以归为以下两种:

application.properties

application.yml(application.yaml)

1. application.properties 配置文件

咱们可以创建 application.properties 配置文件去覆盖 SpringBoot 的默认配置,可以在resources 文件夹下创建 application.properties 文件,这里就以手动配置 Tomcat 端口去覆盖SpringBoot 默认配置为例,我们知道 Tomcat 默认打开端口是8080,咱们可以通过 application.properties 配置文件去修改这个默认配置:

server.port=8888

添加配置之后,运行项目

properties 文件是以键值对的形式编写,可以看到,通过修改application.properties 配置文件,已经将 Tomcat 端口改为 8888,覆盖了之前的配置,由于 properties 文件在以往用的也比较多,较为常见,这里就不做过多讲述,主要还是对 yml 配置文件进行学习。

2. application.yml(application.yaml) 配置文件

YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。YML文件的扩展名可以使用.yml或者.yaml。

【1】yml配置文件语法

yml 的配置可以分为下面几种,我们先在 resources 文件夹下面创建 application.yml 配置文件

配置普通数据

配置对象数据

配置Map数据

配置数组数据

配置普通数据:

语法: key: value

eg:

name: onestar

注意:value前面有一个空格

配置对象数据:

  • 语法1:

    • key:
      key1: value1
      key2: value2
  • 语法2:

    • key: {key1: value1,key2: value2}
  • eg:
person:name: oneStarage: 18addr: yichun#或者
person: {name: oneStar,age: 18,addr: yihcun}

注意:key1前面的空格个数不限定,在yml语法中,相同缩进代表同一个级别

配置Map数据:

  • 配置Map数据和配置对象数据相同
  • eg:
map:key1: value1key2: value2

配置数组数据:

  • 语法1

    • key:
      - value1
      - value2
  • 语法2

    • key: [value1,value2]
  • eg:
city:- beijing- tianjin- shanghai- chongqing#或者
city: [beijing,tianjin,shanghai,chongqing]#集合中的元素是对象形式
student:- name: oneStarage: 18score: 100- name: twoStarage: 28score: 88- name: threeStarage: 38score: 90

注意:value1与之间的 - 之间存在一个空格

二、配置文件与配置类的属性映射

配置文件中的配置,不管是 properties 文件还是 yml 文件,有一些配置 SpringBoot 会自动去识别,比如 server.port=8888 配置,但有一些我们自定义的配置,SpringBoot 并不能自动识别,怎样才能让 SpringBoot 认识自己配置的信息呢,这里就有两种方法:

使用注解 @Value 映射

使用注解 @ConfigurationProperties 映射

1、使用注解 @Value 映射

我们可以通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上,这里以 yml 文件进行说明

application.yml 配置如下:

person:name: oneStarage: 18

实体Bean代码如下

@Controller
public class QuickController {@Value("${person.name}")private String name;@Value("${person.age}")private int age;@RequestMapping("/quick")@ResponseBodypublic String quick(){return "name="+name+",age="+age;}
}

运行后,浏览器访问地址:

http://localhost:8080/quick​localhost:8080

结果如下:

naem=oneStar,age=18

2、使用注解 @ConfigurationProperties 映射

使用 Value 映射能够精确的匹配到某一属性,但如果有很多属性,就带来了不便,因此,还可以使用 @ConfigurationProperties 映射,通过注解@ConfigurationProperties(prefix="配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映射

application.yml 配置如下:

person:name: oneStarage: 19

实体Bean代码如下:

@Controller
@ConfigurationProperties(prefix = "person")
public class QuickController {private String name;private int age;public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}@RequestMapping("/quick")@ResponseBodypublic String quick(){return "name="+name+",age="+age;}
}

运行后,浏览器访问地址:

http://localhost:8080/quick​localhost:8080

结果如下:

name=oneStar,age=19

注意:使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方法才可以,而使用@Value注解修饰的字段不需要提供set方法.

apache 配置文件内使用 8080 端口_【SpringBoot 框架】- SpringBoot 配置文件相关推荐

  1. FRP内网穿透--实现公网ip远程访问内网8080端口

    写在前面,frp内网穿透的教程还挺多的,博主写本博客的目的是作为一个学习记录,如果对你有些许帮助那也算荣幸之至了. 声明: 本博客参考自: [Linux]腾讯云服务器,使用FRP内网穿透,端口映射,远 ...

  2. linux下apache端口被占用,【linux】下Apache无法启动(8080端口被占用)

    Linux下8080端口被占用,apache无法启动. 打开终端输入netstat -lnp|grep 8080 发现竟然是tcp6 占用里,因此ipv6启用占用了端口. 1.打开/etc/sysct ...

  3. netty 多个 本地udp端口_如何在SpringBoot中,使用Netty实现远程调用?

    前言 众所周知我们在进行网络连接的时候,建立套接字连接是一个非常消耗性能的事情,特别是在分布式的情况下,用线程池去保持多个客户端连接,是一种非常消耗线程的行为.那么我们该通过什么技术去解决上述的问题呢 ...

  4. 【SpringBoot零基础案例03】【IEDA 2021.1】SpringBoot框架核心配置文件application.properties的使用

    新建模块,并在src-main-java下新建IndexController类 package com.zx.springboot.springbootcontextpath.controller;i ...

  5. spring jpa mysql集群_微框架:Springboot+Jpa+mysql零基础上手班

    [课前科普百科] 企业的很多技术都是保密的,尤其是实战项目和新兴技术.Springboot是目前互联网薪的技术.Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spr ...

  6. Java - SpringBoot 框架详解(一)

    1. SpringBoot框架 SpringBoot并不是一个全新的技术解决了新问题的框架!它更像是一个SpringMVC框架,但是,它极大程度的简化了相关的配置,它推荐使用"约定大于配置& ...

  7. springboot 得到端口_带你入门SpringBoot

    SpringBoot是一个非常强大的框架,该框架是由 Pivotal 团队提供的一个全新框架,目前已经成为当今最流行的微服务开发框架.SpringBoot设计的目的就是用来简化新 Spring 应用的 ...

  8. 转 zookeeper启动为什么占用8080端口,修改哪个配置文件可以改变端口?

    在zookeeper启动的时候,看打印信息显示会启动jetty,启动一个adminServer on port 8080:我不想他占用8080端口,请问哪位大神能告诉我哪个配置文件可以修改端口?  是 ...

  9. springBoot修改内置tomcat端口

    springBoot内置了tomcat,tomcat端口是8080,实际开发中,端口肯定是需要修改的,下面直接贴代码怎样修改tomcat端口; @SpringBootApplication@Mappe ...

最新文章

  1. vijos 1476 旅游规划题解
  2. Python中的元编程:一个关于修饰器和元类的简单教程
  3. springmvc使用和经验总结(长沙师说网络科技有限公司)
  4. linux 下ab压力测试
  5. 修改Tomcat 6 默认的ROOT
  6. SecureCRT上传bash: rz: command not found
  7. android 布局可大可小,UI设计教程之:ios与android ui适配(将IOS UI转换成Android经验畅谈)...
  8. Hbase具体操作(图文并茂且超超全~~~)
  9. 【转】 CSS3实现10种Loading效果
  10. 避免Ie下的js缓存问题
  11. 寒假学习报告 第一周 1.18
  12. js获取本地文件(图片、word文档等)并获取其Base64化的编码,可用于本地文件上传至服务器
  13. 传智播客风清扬视频-------IO简述之File讲解
  14. [总结自用]关于Mbps、Mb/s、MB/s以及Mpps的区别及计算
  15. Excel 2010 VBA 入门 033 批量合并相同的单元格
  16. 【Block-Level Verification】 芯片开发通识_验证目标_ 验证语言_ 验证职业前景 _挑战和瓶颈_验证周期_功能描述文档_验证计划_回归测试_硅后测试_逃逸分析...
  17. go语言中pdf转图片功能的实现(CentOS)
  18. android开发 图片旋转
  19. 5G智慧园区整体架构方案(ppt)
  20. .mdf和.ldf数据库文件导入到SQL Server数据库

热门文章

  1. Vue3、TypeScript 实现图片数量及大小随宽度自适应调整
  2. 高级会计师计算机考试中级,会计师需要计算机等级考试吗
  3. count返回0_你是一直认为 count(1) 比 count(*) 效率高么?
  4. 在现有的python环境下创建另一个python版本【亲测有效】
  5. C++ stringstream介绍,使用方法与例子
  6. c语言输出去掉最后一行回车,新人提问:如何将输出时每行最后一个空格删除...
  7. int0低电平触发c语言,单片机中断的解释.ppt
  8. Python中的高级数据结构
  9. 使用MyBatis集成阿里巴巴druid连接池(不使用spring)
  10. 从零开始攻略PHP(8)——面向对象(下)