1、SpringBoot启动类:
package com.tx.springboot_test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* springboot启动类 入口
*/
@SpringBootApplication
public class SpringBootTestApplication {
public static void main(String[] args) {
//启动spring应用
SpringApplication.run(SpringBootTestApplication.class, args);
}
}
想要外部化SpringBoot的SpringApplication的配置;就需要先实例SpringApplication
比如我们想Spring Boot 横幅不会在启动时打印:
SpringApplication app=new SpringApplication(SpringBootTestApplication.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
或者使用
new SpringApplicationBuilder()
.bannerMode(Banner.Mode.OFF)
.sources(SpringBootTestApplication.class)
.run(args);
当然还有其它的可以使用如:
setDefaultProperties():启用外部自定义的.properties配置
2、SpringBoot的配置文件
application.properties是SpringBoot默认的配置文件,它里面的书写方式是以键值对的格式书写;
server.port=8087
spring.main.lazy-initialization=true
spring.main.lazy-initialization=true是设置初始化懒加载,目的是bean在spring初始化时不创建,只有在使用到这个bean的时候才创建。
我们也可以将其修改成application.yml,这时它的书写格式就变成了树型结构,
server:
port: 8089
spring:
main:
lazy-initialization: true
当然,这两个格式可以同时存在
但是在springBoot3.x版本中application.properties的优先级高一点,.yam作为补充,不会将原有的配置覆盖。
配置文件在不同位置的优先级:
首先要知道当项目被打成jar时,只会编译src目录下的文件,所以配置文件的优先级需要从两个方面来看,
第一种不打成jar时,优先级从高到低:
高
1、 项目根路径/config
2、 项目根目录
3、resources/config
4、 resources/
低
如果打成jar,命令行运行jar时指定了properties那它的优先级就是最高的
java -jar jar名称 --spring.config.location=资源路径 //如D:\config/ 他会自动的去找配置文件
如果不指定那么就是看src目录下哪个配置文件优先级高。