首先说一下,写下这边博文主要是做记录,免得到时候自己都忘记了。顺便也安利一波这款笔记软件,用了几年,感觉还不错。
先把几个网址贴上,首页在这里可以下载客户端。GitHub地址https://github.com/leanote 说明一下,这是一款开源的笔记。还有一个服务端的下载地址http://leanote.org/ 当然,也可以用GitHub上的自己编译安装
上次,我写了一片博文, 关于Leanote自建服务器点击这里,而就在我这篇博文刚发布不久MongoDB的4.2版本就正式发布,这也是一种重要版本,更新了许多新的特性。当然,对那些不怎么不使用MongoDB的人来说,新特性并没有什么重要的,但是如果对一直使用Leanote自建服务器,并且从以前就开始使用的人来说是会有一点影响的。
当MongoDB系列软件升级到4.2这个版本以
前面说到了配置文件的拆分,这里继续说配置文件。
配置文件是有加载顺序的,内部配置文件加载顺序在SpringBoot启动的时候按照高到低的优先级扫描以下位置的默认配置文件并作为SpringBoot的默认配置文件
1、项目路径下的config目录中的配置文件;
2、项目根目录下的配置文件;
3、classpath下的config目录中的配置文件;
4、classpath根目录下的配置文件;
如果扫描目录下都有配置文件,其中的配置都会加载,会根据优先级的高优先级配置文件中的配置会覆盖低优先级的。
如果想要改变默认配置文件,在打包好的项目文件,命令行参数可以通过spring.config.location来改变默认配置 --spring.config.location={配置文件绝对路径}
接着再说一下外部文件的加载顺序,由于外部文件加载的位置比较多,就直接套用官方的文档说明了。
其实,这个配置文件加载,一般用的并不是很多,所以一笔带过,如果需要的时候翻翻文档就可以了。
接着再讲一个Profile文件。
多Profile配置文件指的是什么呢?
多profile文件,profile用于Spring做多环境切换支持,可以使application-{profile}.properties/yaml:例如:--application-dev.properties、application-test.properties
激活的时候可以在主配置文件中使用spring.profiles.active=dev
当然,如果在开发环境,可以使用命令行参数带入--spring.profiles.active={profile},当然,这个参数也可以在maven打包完成以后运行的时候带入参数。
除此之外,也可以在虚拟机参数中带入,-Dspring.profiles.active={profile}。
其实说这么多不如演示一下,首先还是pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
前面讲到了拆分配置文件,这里继续讲配置文件,主要是配置文件中的占位符。
老样子,pom.xml先粘贴上。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i
上次讲到了如何注入属性的值,如果将所有需要注入容器的值全部放入一个配置文件中,是否会让这个配置文件过于臃肿呢?
那么,就使用@PropertySource这个注解来拆分配置文件,改注解的作用是告诉Spring Boot需要导入的配置文件的位置。
老样子,先上pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>cc_acme</groupId> <artifactId>springboot-split-properties</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-split-properties</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependenc
首先简单说一下两个注解之前的区别。
@Configurationproperties | @Value | |
功能 | 批量注入配置文件中的属性 | 每个属性单独注入 |
松散语法 | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
首先说一下功能上面,@Configurationpr