您现在的位置是:首页 >学无止境 >36.SpringBoot实用篇—运维网站首页学无止境

36.SpringBoot实用篇—运维

醉梦依依惜 2024-10-12 12:01:04
简介36.SpringBoot实用篇—运维

目录

一、实用篇—运维。

(1)程序打包与运行(Windows版)。

(2)spring-boot-maven-plugin插件作用。

(3)程序打包与运行(Linux版)。

(4)配置高级。

(4.1)临时属性设置(命令行)。

(4.2)临时属性设置(开发环境)。

(4.3)配置文件(等级)分类。

(4.4)自定义配置文件。

(5)多环境开发。

(5.1)多环境开发—单配置文件格式(YAML版)。

 (5.2)多环境开发—多配置文件格式(YAML版)。

 (5.3)多环境分组管理(多配置文件再根据功能细分)。

(5.4)多环境开发控制。(Maven与SpringBoot多环境冲突现象解决方案)

(6)日志。

(6.1)日志基础。

(6.2)使用注解来获取日志对象。

(6.3)日志输出格式控制。

(6.4)日志文件。


一、实用篇—运维

(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 主要有两个作用:

  1. 加载可执行 Jar 包中的类和依赖库:它会使用 Spring Boot 内置的类加载器,递归加载可执行 Jar 包中的所有类,以及依赖的库(如 jar、war 或 zip 文件)。

  2. 启动 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"

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。