SpringBoot2概览-运维实用篇

知识点


  • 使用SpringBoot提供的maven插件可以将工程打包成可执行jar包然后执行,即java –jar xxx.jar,下面的图是MANIFEST.MF文件的内容:
    SpringBoot2概览-运维实用篇_第1张图片
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
        plugin>
    plugins>
build>
  • 命令行启动常见问题及解决方案(针对Windows系统):
# 查询端口
netstat -ano
# 查询指定端口
netstat -ano |findstr "端口号"
# 根据进程PID查询进程名称
tasklist |findstr "进程PID号"
# 根据PID杀死任务
taskkill /F /PID "进程PID号"
# 根据进程名称杀死任务
taskkill -f -t -im "进程名称"
  • Linux系统中启动SpringBoot项目:
nohup java -jar xxx.jar > xxx/xxx.log 2>&1 # 在后台启动SpringBoot项目并且将输出的日志记录在log文件中
ps -ef | grep ""java -jar"  # 找到启动程序的pid
kill -9 xxx  # 根据pid终止SpringBoot项目
  • SpringBoot中4级配置文件:
    • 1级(级别最高,运维经理进行线上整体项目部署方案的调控):file:config/application.yml,即项目jar包所在路径下创建一个config目录,其中的yml文件
    • 2级:file:application.yml,即项目jar包所在路径下的yml文件
    • 3级(项目经理进行整体项目属性的调控):classpath:config/application.yml,即当前下项目的resources目录下创建一个config目录,其中的yml文件
    • 3级:classpath:application.yml,即当前下项目的resources目录下的yml文件
  • 在命令行中可以设置SpringBoot的配置文件路径,不过在SpringCloud中就使用过配置中心进行设定,动态加载配置信息:
--spring.config.location=classpath:/xxx.yml
  • 假设根据功能对application-dev.yml配置文件(该文件还是保留了)中的信息进行拆分,并制作成独立的三个配置文件application-devDB.ymlapplication-devRedis.ymlapplication-devMVC.yml,要对多个环境进行加载使其生效:
# application-xxx.yml是命名规则
# 未使用group属性,优先级为devDB
Spring:
  profiles:
    active: dev  # application-dev.yml也会生效,该文件中的优先级大于include中的
    include: devDB,devRedis,devMVC  # 这三个文件都会生效,越往后的文件优先级越高
    
# 使用group属性,优先级为dev
Spring:
  profiles:
    active: dev  # application-dev.yml也会生效,该文件中的小于dev中的三个
    group:
      "dev": devDB,devRedis,devMVC  # 这三个文件生效,越往后的文件优先级越高
	  "pro": proDB,proRedis,proMVC
	  "test": testDB,testRedis,testMVC
  • MavenSpringBoot同时对多环境进行控制时,以Maven为主(通过修改pom文件进行环境的切换),SpringBoot使用@..@占位符读取Maven对应的配置属性值
<profiles> 
    <profile> 
        <id>dev_envid> 
        <properties> 
        	<profile.active>devprofile.active> 
        properties> 
        <activation> 
        	<activeByDefault>trueactiveByDefault>   
        activation> 
    profile> 
    <profile> 
        <id>pro_envid> 
        <properties> 
        	<profile.active>proprofile.active> 
        properties> 
    profile> 
    <profile> 
        <id>test_envid> 
        <properties> 
        	<profile.active>testprofile.active> 
    	properties> 
    profile>
profiles>
spring:
  profiles:
    active: @profile.active@  # 此时运行dev中的
  • 日志级别(启动项目后控制台不会输出DEBUG级别的具体日志信息是因为默认输出INFO及以上级别的,而DEBUG级别低于INFO):
    • TRACE:运行堆栈信息,使用率低
    • DEBUG:程序员调试代码使用
    • INFO:记录运维过程数据
    • WARN:记录运维过程报警数据
    • ERROR:记录错误堆栈信息
    • FATAL:灾难信息,合并计入ERROR
  • 设置日志输出级别和日志组(日志组即控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别):
# 1.设置日志输出级别
# 开启debug模式,输出调试信息,常用于检查系统运行状况
debug: true
# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
  level:
    root: debug
-------------------------------------------------
# 2.设置日志组
logging:
  group:
    # 自定义组名,设置当前组中所包含的包
    ebank: com.psj.controller
  level:
    root: warn
    # 为对应组设置日志级别
    ebank: debug
    # 为对包设置日志级别
    # com.psj.controller: debug
  • 日志输出格式如下图,要控制输出格式可以进行以下配置:
    SpringBoot2概览-运维实用篇_第2张图片
logging:
  pattern:
    console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"  # %d表示日期,%m表示信息
  • 日志文件详细配置:
logging:
  file:
    name: server.log
  logback:
    rollingpolicy:
      max-file-size: 3KB
      file-name-pattern: server.%d{yyyy-MM-dd}.%i.log

注意事项


  • 在打包过程中会执行测试,如果写了测试代码就会执行代码,所以需要通过设置跳过测试步骤再打包

资料

视频参考黑马程序员SpringBoot2全套视频教程 P54-P69


你可能感兴趣的:(框架学习,springboot,运维,javaee)