SpringBoot应用的pom.xml和配置文件

870 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情

描述信息

 <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.7.2</version>
     <relativePath/> <!-- lookup parent from repository -->
 </parent>

当前的SpringBoot应用是一个子工程,只要你是SpringBoot应用都会有相同的父工程

如果 修改使用的SpringBoot应用的版本,修改version标签里的值

为啥提供父工程,是为了给你的应用提供一些通用的配置

省略了packaging标签 → 默认值就是jar

依赖

image.png

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

我们写依赖的时候,和前面有不一样的地方

没有写version,没有写版本号 → 实际上是有的呀

这其实就是一种约定大于配置,如果我写了版本号,则会以我写的版本号为准;

这个 是基于父工程 → spring-boot-starter-parent → spring-boot-dependencies

里面有一个标签:dependencyManagement → 管理依赖的版本信息

如果写了依赖,没有写版本信息,就会从dependencyManagement中找对应的依赖的版本信息

 <dependencyManagement>
   <dependencies>
       <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
         <version>2.7.2</version>
       </dependency>
     </dependencies>
 </dependencyManagement>

★starter依赖

是SpringBoot应用中会包含的这样的一种依赖

  • spring-boot-starter → 只要你是一个SpringBoot应用,一定会包含这个依赖
  • spring-boot-starter-xxx → 官方提供的依赖,比如spring-boot-starter-web,SpringBoot对于web支持的依赖
  • xxx-spring-boot-starter → 第三方提供的依赖,比如mybatis-spring-boot-starter,SpringBoot对于MyBatis支持的依赖

starter依赖基本上可以这么说,当你要引入一个框架或功能的时候,你只需要引入其starter依赖就可以了

  • 引入对于该框架或功能支持的所需要的依赖
  • 引入autoconfigure依赖 → 自动配置(约定大于配置)

注意:如果你还没有打算使用某项功能,就不要先引入其starter依赖

SpringBoot配置文件

格式

名字:

  • application.properties或application*.properties → application-xxx.properties
  • application.y(a)ml或application*.y(a)ml → application-xxx.y(a)ml

yml和yaml其实是一种配置文件,里面的写法是完全一模一样的

格式:properties、yml、yaml

语法:键值对

 # properties配置文件
 cskaoyan.db.username=root
 cskaoyan.db.password=123456
 cskaoyan.img=jpeg

yml或yaml里面其实表达的也是键值对

  • 在写key的时候遇到点 → 冒号、换行、空格缩进(缩进几个空格都可以,同一级要对齐)
  • 在遇到等于符号 → 冒号、空格
  • 具有相同的前缀的时候可以(必须)复用
 cskaoyan:
   db:
     username: root
 #cskaoyan:
 #  db:
     password: 123456
   img: jpeg

和properties相比:有什么样的优缺点

优点:写的内容少,相同的配置项比较集中

缺点:可读性稍微差一点

有一个点:写值的时候,比如有的同学的数据的密码是 012345 → Access Deny

 cskaoyan:
   db:
     #password: 012345 #8进制
     password: '012345'

常用配置

和SpringBoot应用中内置的Tomcat有关系

server.port Tomcat的端口号配置

server.servlet.context-path 应用上下文的配置

 server:
   port: 8081
   servlet:
     context-path: /demo1

访问hello请求需要的url:http://localhost:8081/demo1/hello