您现在的位置是:首页 >学无止境 >36.SpringBoot实用篇—运维网站首页学无止境
36.SpringBoot实用篇—运维
目录
(2)spring-boot-maven-plugin插件作用。
(5.4)多环境开发控制。(Maven与SpringBoot多环境冲突现象解决方案)
一、实用篇—运维。
(1)程序打包与运行(Windows版)。
如果在idea中操作,则使用maven的生命周期方法:clear(删除target目录)—》package —》win + R —》java -jar springboot_01_quickstart.jar。(项目启动成功如下)
(2)spring-boot-maven-plugin插件作用。
注意:要有这个插件才能在命令行中启动成功。
JarLauncher 不是类加载器,它是 Spring Boot 应用程序的启动器,负责在运行时加载应用程序代码和依赖的库,并启动 Spring Boot 应用程序。
具体来说JarLauncher 主要有两个作用:
-
加载可执行 Jar 包中的类和依赖库:它会使用 Spring Boot 内置的类加载器,递归加载可执行 Jar 包中的所有类,以及依赖的库(如 jar、war 或 zip 文件)。
-
启动 Spring Boot 应用程序:它会创建一个 SpringApplication 对象,并调用该对象的 run() 方法来启动 Spring Boot 应用程序。在启动时,SpringApplication 会根据应用程序中的配置,在 Spring 容器中注册各种 Bean,并启动嵌入式的 Web 服务器等等。
JarLauncher 是 Spring Boot 应用程序的启动器,负责加载应用程序代码和依赖的库,并启动 Spring Boot 应用程序。
(3)程序打包与运行(Linux版)。
(4)配置高级。
(4.1)临时属性设置(命令行)。
(4.2)临时属性设置(开发环境)。
(4.3)配置文件(等级)分类。
properties与yml的优先级:先看层级,如果同层级目录,则properties优先级高于yml。
如:config的yml优先级大于外边的properties配置文件。
下面说的1级、2级:即配置文件与项目jar、配置文件与项目工程在同一目录。
需要注意的地方(看执行项目的是哪种格式)有两个:
1、如果执行的是jar包:yml与jar在同一目录下。
2、如果执行的是项目(非jar包):yml与springboot_03_yaml在同一目录。
配置文件分类参考如下:
(4.4)自定义配置文件。
作用:配置文件名称不用application时,就需要告诉springboot。
还可以这样写:--spring.config.location=D:springbootspringboot_09_configsrcmain esourcesebank.yml
(5)多环境开发。
(5.1)多环境开发—单配置文件格式(YAML版)。
注意:这种暴露配置,全部都写在同一个配置文件中,开发人员可以看到。
(5.2)多环境开发—多配置文件格式(YAML版)。
(5.3)多环境分组管理(多配置文件再根据功能细分)。
第一种方式:使用include。
缺点:一改active属性值,include全都要改。
spring: profiles: active: dev(3) include: devMVC(1),devDB(2) 注意:(1)代表它最先加载,然后(2)加载。。。。;后面加载的覆盖前面加载。
第二种方式:使用group。(推荐)
优点:修改active属性值后, 其他不需要变。
spring: profiles: active: dev(1) group: "dev": devDB(2),devMVC(3) "pro": proDB(2),proMVC(3)
(5.4)多环境开发控制。(Maven与SpringBoot多环境冲突现象解决方案)
application.yml配置文件:
spring:
profiles:
active: @profile.active@
group:
"dev": devDB,devMVC
"pro": proDB,proMVC
在pom.xml中:
<!--设置多环境-->
<profiles>
<profile>
<id>env_dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>env_pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
</profile>
</profiles>
(6)日志。
(6.1)日志基础。
logging:
level:
root: info
com.itheima.controller: debug
ebank: debug
group:
ebank: com.itheima.controller,com.itheima.service,com.itheima.dao
iservice: com.aliyun
(6.2)使用注解来获取日志对象。
(6.3)日志输出格式控制。
(6.4)日志文件。
logging:
level:
root: info
com.itheima.controller: debug
ebank: debug
group:
ebank: com.itheima.controller,com.itheima.service,com.itheima.dao
iservice: com.aliyun
file:
name: server.log
logback:
rollingpolicy:
max-file-size: 5KB
file-name-pattern: server.%d{yyyy-MM-dd}.%i.log
#举例:server.2020-01-01.0.log。{yyyy-MM-dd}是格式,可以不写
# 设置日志模板格式
# pattern:
# console: "%d - %m%n"
# console: "%d %5p %n "
# console: "%d %clr(%5p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"