SpringBoot基础配置

Web相关

Posted by YD Blog on November 15, 2022

SpringBoot基础配置

配置格式

这三种方式都使用时,以方式一为第一加载,方式二为第二加载,方式三为第三加载

方式一:在properties文件中修改

  • 修改服务器端口
    • 直接在SpringBoot项目的resources目录下的application.properties文件中添加server.port=80即可

方式二:在yml文件中修改

  • 修改服务器端口
    • 在SpringBoot项目的resources目录下创建application.yml文件,添加内容如下
server:
    port: 80

.yml的书写格式如上,注意值的前面必须要用一个空格与冒号隔开

方式三:在yaml文件中修改

  • 修改服务器端口
    • 与方式二相同,只是文件后缀不同

yaml格式

  • YAML (YAML Ain’t Markup Language),一种数据序列化格式
  • 优点:
    • 容易阅读
    • 容易与脚本语言交互
    • 以数据为核心,重数据轻格式
  • YAML文件扩展名
    • .yml (主流)
    • .yaml
  • yaml语法规则
    • 大小写敏感
    • 属性层级关系使用多行描述,每行结尾使用冒号结束
    • 使用缩进表示层级关系,同层级左侧对其,只允许使用空格(不允许使用Tab键)
    • 属性值前添加空格(属性名与属性值之间使用冒号+空格作为分隔)
    • # 表示注释
    • 数组数据在数据书写位置的下方使用减号-作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
enterprise:
    name: YD
    age: 22
    hobby:
        - reading
        - learn

类似如上。

yaml数据读取方式

其中方式三若发生警告时,可在pom文件中添加如下依赖解除警告。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

方式一

  • 使用@Value读取单个数据,属性名引用方式为:${一级属性名.二级属性名...}
  • 读取数组时在属性名后反大括号之前使用下标方式访问即可

方式二

  • 封装全部数据到Environment对象然后使用自动装填访问
    • 直接在类中定义Environment类型对象添加@Autowired
    • 使用Environment对象的getProperty()方法取用数据即可

方式三

  • 使用自定义对象封装指定数据
    • 自定义类添加同名属性
    • 添加注解@Component将其设置为bean
    • 添加注解@ConfigurationProperties,将属性prefix设置为需要封装的一级属性名
    • 在需要使用的地方使用自动装填取用数据即可

多环境开发配置

yml文件配置方式

  • 使用---将两个不同的环境配置隔开
  • 在每个环境配置中使用spring.profiles定义环境名称
  • 在最前方使用spring.profiles.active指定启用的环境
# 指定启用的环境
spring:
  profiles:
    active: dev

---
# 开发环境
spring:
  profiles: dev
server:
  port: 80

---
# 生产环境
spring:
  profiles: pro
server:
  port: 81

---
# 测试环境
spring:
  profiles: test
server:
  port: 82

如上所示。

公用配置写在最上面的公用环境里即可。

上面这个配置方式为旧版配置方式,新版更加繁琐,如下:

spring:
  config:
    activate:
      on-profile: dev

两种均可使用。

在properties文件中配置

  • 在application.properties文件中指定启用的环境
spring.profiles.active=环境名
  • 创建新的文件命名为application-环境名.properties
  • 在新的文件中添加对应的环境配置即可

多环境命令行启动参数

java -jar 包名.jar --spring.profiles.active=环境名称

如上指令在包名所在目录下运行即可

另外后面的参数可以有多个,例如

java -jar 包名.jar --spring.profiles.active=环境名称 --server.port=88

另外命令行参数的优先级要高于内部参数,故可以直接覆盖配置

多环境开发控制

  • Maven与SpringBoot多环境兼容问题
    1. Maven中设置多环境属性
    2. 在SpringBoot中引用Maven属性

配置文件分类

  • SpringBoot中4级配置文件
    • 1级:file:config/application.yml [最高]
    • 2级:file:application.yml
    • 3级:classpath:config/application.yml
    • 4级:classpath:application.yml [最低]
  • 作用:
    • 1级与2级留作系统打包后设置通用属性
    • 3级与4级用于系统开发阶段设置通用属性

注意,其中classpath代表类路径,也就是项目开发时在项目中的路径,而file表示文件系统下路径,也就是在运行jar包时与jar包同目录下的相对路径。