SpringBoot配置文件的优先级

本文主要详细介绍SpringBoot项目中配置文件的优先级。

优先级高的配置会覆盖优先级低的配置。

总体优先级

(1)命令行参数,比如--server.port=8081
(2)JVM系统属性,通过System.getProperties()方法获取;
(3)系统环境属性,通过System.getenv()方法获取;
(4)jar包外部的application-{profile}.properties/yml配置文件,如果没有指明激活的profile,则默认为default;
(5)jar包内部的application-{profile}.properties/yml配置文件,如果没有指明激活的profile,则默认为default;
(6)jar包外部的application.properties/yml配置文件;
(7)jar包内部的application.properties/yml配置文件;
(8)通过@Configuation注解类上的@PropertySource注解引入的配置文件;
(9)通过SpringApplication.setDefaultProperties指定的默认属性;

SpringBoot+Vue+MySQL+Redis在Windows机器上一键安装部署

整体安装部署流程:

  1. 初始化依赖服务和程序目录;
  2. 编写安装及卸载bat脚本;
  3. 通过Inno Setup将程序目录打包成exe;

Inno Setup下载地址:https://jrsoftware.org/isdl.php
Inno Setup文档:https://jrsoftware.org/ishelp/

1、初始化目录

将所需依赖和程序放入install目录,所需依赖尽量选择解压版,这样注册服务即可直接使用。如下图示,JDK、Nginx、MySQL、Redis等均为解压版。

Springboot启动流程

Springboot启动流程

本文使用的SpringBoot版本为:2.7.4

Springboot启动流程(概括)

1、首先创建SpringApplication实例,在构造方法里(初始化属性):
(1)判断Web应用类型是响应式REACTIVE的,还是基于SERVLET的web应用 WebApplicationType
(2)读取spring.factories加载初始化器 ApplicationContextInitializer
(3)读取spring.factories加载监听器 ApplicationListener

Springboot项目i18n国际化配置

Springboot项目i18n国际化配置

1、创建Springboot项目

创建Springboot项目,添加以下依赖:
Spring Web
Thymeleaf

2、Springboot项目i18n配置

thymelea模板配置:

  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML5
    encoding: UTF-8
  messages:
    basename: i18n/messages