springboot运维

springboot项目快速启动(Windows版)

1.对SpringBoot项目打包(执行Maven构建指令package)

mvn package

2.运行项目(执行启动指令)

java -jar 项目名.jar

注意:jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件

<build> 
    <plugins> 
        <plugin> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

命令行启动常见问题及解决方案
Windonws端口被占用

# 查询端口
netstat -ano
# 查询指定端口
netstat -ano |findstr "端口号"
# 根据进程PID查询进程名称
tasklist |findstr "进程PID号"
# 根据PID杀死任务
taskkill /F /PID "进程PID号"
# 根据进程名称杀死任务
taskkill -f -t -im "进程名称"

临时属性设置

带属性数启动springboot

java –jar 包名.jar –-server.port=8080

携带多个属性启动springboot,属性间使用空格分隔;临时属性必须是当前boot工程支持的属性,否则设置无效。

配置文件分类

  1. SpringBoot中4级配置文件:(多层级配置文件间的属性采用叠加并覆盖的形式作用于程序
    1级: file :config/application.yml 【最高】
    2级: file :application.yml
    3级:classpath:config/application.yml
    4级:classpath:application.yml 【最低】

第三级有A,C(端口号是81),第四级有B,C(端口号是80),那么运行后的结果是A,B,C(端口号是81)。
第四级(项目类路径配置文件):服务于开发人员本机开发与测试
在这里插入图片描述

server:
  port: 80

#配置数据源
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
      username: root
      password: root

#配置MyBatisPlus对应的基础配置,id生成策略使用数据库自增策略
#mybatis-plus:
#  global-config:
#    db-config:
#      table-prefix: tbl_
#      id-type: auto
#
#  configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

第三级(项目类路径config目录中配置文件):服务于项目经理整体调控
在这里插入图片描述

server:
  port: 81

#配置数据源
#spring:
#  datasource:
#    druid:
#      driver-class-name: com.mysql.cj.jdbc.Driver
#      url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
#      username: root
#      password: root

#配置MyBatisPlus对应的基础配置,id生成策略使用数据库自增策略
mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_
      id-type: auto

  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

运行结果是端口号为81.

第二级(工程路径配置文件):服务于运维人员配置涉密线上环境
在这里插入图片描述

server:
  port: 82

运行结果是端口号为82.

第一级(工程路径config目录中配置文件):服务于运维经理整体调控
在这里插入图片描述

server:
  port: 8888

运行结果是端口号为8888.

自定义配置文件

1.通过启动参数加载配置文件(无需书写配置文件拓展名)
在这里插入图片描述
在这里插入图片描述

启动后端口号是84。

2.通过启动参数加载指定文件路径下的配置文件
在这里插入图片描述

3.通过启动参数加载指定文件路径下的配置文件时可以加载多个配置
在这里插入图片描述

ebank-server.yml中只有一个参数就是端口号是85,运行后端口号为85。
即加载多个配置,最终执行最后一个配置(覆盖思想,执行最后一个)。

多环境开发多配置文件格式

主配置文件application.yml

spring:
    profiles:
        active: dev #使用开发环境的配置文件

开发环境的配置文件application-dev.yml

server:
    port: 81

测试环境的配置文件application-test.yml

server:
    port: 82

上线环境的配置文件application-pro.yml

server:
    port: 80

多环境开发分组管理配置文件

根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下:
application-devDB.yml,application-devMVC.yml等等。
使用group属性在激活指定环境的情况下,定义多种主环境与子环境的包含关系,多个环境间使用逗号分隔。
主配置文件application.yml

spring:
    profiles:
        active: dev
        group:
            "dev": devDB,devMVC
            "pro": proDB,proMVC
            "test": testDB,testMVC

application-dev.yml

server:
    port: 80

aplication-devDB.yml

#数据库连接的配置

server:
    port: 81

aplication-devMVC.yml

server:
    servlet:
        context-path: /admin
    port: 82

group属性中运行加载配置文件的顺序是dev—>devDB—>devMVC.

当主环境dev与其他环境有相同属性时,主环境属性生效;当住环境dev没有,其他环境中有相同属性时,最后加载的环境属性生效。先加载主启动的环境dev中的配置,再根据active加载主配置文件application.yml中group对应的顺序(devDB->devMVC),。其实还是覆盖思想,相同的属性,后面的把前面的配置给覆盖了

多环境开发控制

当maven和springboot同时对项目进行多环境开发配置时,
pom.xml

<profiles> 

    //开发环境
    <profile> 
        <id>dev_env</id> 
            <properties> 
                <profile.active>dev</profile.active> 
            </properties> 
            <activation> 
                <activeByDefault>true</activeByDefault> //默认执行该环境
            </activation> 
    </profile> 
    
    //上线环境
    <profile> 
        <id>pro_env</id> 
        <properties> 
            <profile.active>pro</profile.active> 
        </properties> 
    </profile> 
    
    //测试环境
    <profile> 
        <id>test_env</id> 
        <properties> 
            <profile.active>test</profile.active> 
        </properties> 
    </profile>
</profiles>

在springboot中引用maven属性,application.yml

spring:
    profiles:
        active: @profile.active@ 

这里的@profile.active@就是指的是pom.xml 中的**<profile.active>dev</profile.active>**
总结:1.当Maven与SpringBoot同时对多环境进行控制时,以Mavn为主,SpringBoot使用@…@占位符读取Maven对应的配置属性值。
2. 基于SpringBoot读取Maven配置属性的前提下,如果在Idea下测试工程时pom.xml每次更新需要手动compile方可生效。

日志基础操作

添加日志记录操作

@RestController
@RequestMapping("/books")
public class BookController extends BaseController {
    private static final Logger log = LoggerFactory.getLogger(BookController.class);
    @GetMapping
    public String getById(){
        System.out.println("springboot is running...");
       
        //DEBUG:程序员调试代码使用
        log.debug("debug ...");
        //INFO:记录运维过程数据
        log.info("info ...");
        //WARN:记录运维过程报警数据
        log.warn("warn ...");
        //ERROR:记录错误堆栈信息
        log.error("error ...");
        return "springboot is running...";
    }
}

设置日志输出级别

# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
    level:
        root: debug

设置日志组,控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别

logging:
    # 设置日志组
  group:
    # 自定义组名,设置当前组中所包含的包
    ebank: com.itheima.controller
    
  level:
    root: warn
    # 为对应组设置日志级别
    ebank: debug
    
    # 为对包设置日志级别
    #com.itheima.controller: debug

优化日志对象创建代码

@Slf4j
@RestController
@RequestMapping("/books")
    public class BookController {
    @GetMapping
    public String getById(){
        System.out.println("springboot is running...");
        log.debug("debug info...");
        log.info("info info...");
        log.warn("warn info...");
        log.error("error info...");
        return "springboot is running...";
    }
}

日志输出格式控制
在这里插入图片描述

设置日志输出格式

logging:
  pattern:
    console: "%d - %m%n"

 %d:日期
 %m:消息
 %n:换行

logging:
  pattern:
    console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"

例如:

2022-10-18 17:28:23,942  INFO --- [            main] com.itheima.Application           : Started Application in 1.897 seconds (JVM running for 3.184) 
           %d           %clr(%p)        %16t               %-40.40c       
      %d : 时间      
      %5p:p是日志级别,占5个字符
      %clr:是显示日志级别的颜色
      %16t:16位的占位符
      %-40.40c:  .40c是内容长度,  -40是右对齐
      %m:输出日志信息
      %n:换行
        
logging:
    pattern: 
        console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"

日志文件

logging:
   file:
     name: server.log
   logback:
     rollingpolicy:
       max-file-size: 3KB
       file-name-pattern: server.%d{yyyy-MM-dd}.%i.log
  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值