SpringBoot--运维实用

SpringBoot运维实用篇

打包与运行

windows打包

在maven中双击package打包

另外如果打包报utf-8的错,在pom中添加

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
</plugin>

如果报什么测试错误,你clean一下,如果还是不行自己找下其他地方有没有问题

另外项目没有target目录的话:

完成后:target目录下的这个文件就是我们打包的文件

运行打包文件:在cmd中

注意:windows有补全文件名功能,打上一个d点击tab 就能得到那个demo-0.0.。。。。

打包跳过test的方法:

打包插件

插件的作用:打包一个可以独立运行的程序,包含你的程序,程序运行的所有jar包,为了能运行加入的工具包

linux快速启动springboot


然后将打包的jar文件上传到该文件夹中

当然要确保linux中有jdk环境

在linux中连接数据库,类似

之后

之后找到ip地址和端口,在浏览器查看

防止霸屏可以后台启动:

总结:

配置高级

临时属性设置

临时更改端口:(程序已经传到服务器配置文件改不了了)

改多个属性:

临时属性必须是springboot支持的属性否则设置无效

在idea中设置临时属性:

第一种

第二种:


不带参数启动springboot可以防止外界设置临时属性降低程序得到安全性

配置覆盖(四级配置文件)

当然只覆盖新配置文件中有的属性

  1. 在打包jar包所在目录配置一个配置文件那么他的优先级又高于上面两者
  2. 在打包jar包所在目录创建一个config目录在里面添加一个配置文件,他的优先级又高于上面三者

自定义配置文件

如果我们配置文件名字不想用application,想换个其他名字需要怎么办呢?

需要设置临时属性:

方法一:

方法二:

这就把文件名改为了ebank了

设置多个配置文件:

最后一个配置文件优先级高

重要说明:

多环境开发

多环境开发就是生产、开发、测试环境不在同一台主机,而且配置文件可能也有所区别

    #应用环境
#表示本处我们有profiles名字为pro的环境
spring:
  profiles:
    active: pro
---
    #生产环境
server:
  port: 81
spring:
  profiles: pro
---
    #测试环境
server:
  port: 80
spring:
  profiles: test
---
    #开发环境
server:
  port: 82
spring:
  profiles: dev

如果不同环境的配置在不同的配置文件中:

和之前类似只不过profiles的名字就是文件名-后面的,比如application-dev.yml 的名字就是dev

多环境开发分组管理

上面优先级:dev>devMVC>devRedis>devDB

本处的dev就是下面的“dev”组,所以说本处启动的是devDB,devMVC

多环境开发控制

maven和springboot多环境兼容步骤:

日志

日志基础

  • 日志作用
    • 编程期调试代码
    • 运营期记录信息
      • 日常重要信息(峰值流量。。。)
      • 报错信息(错误堆栈。。)
      • 运维过程数据(扩容、报警。。)
@RestController
@RequestMapping("/books")
public class BookController {
//    创建记录日志对象
    private static final Logger log = LoggerFactory.getLogger(BookController.class);


    @GetMapping
    public String getById(){
        System.out.println("spring is running..");
        log.debug("debug..");
        log.info("info。。。");
        log.error("error...");
        log.warn("warn...");
        return "springboot is running...";

    }

}

启动项目打开网页后:

默认为info级别所以不显示debug,如果要显示需要设为debug级别,设置方法:配置文件中:

级别设置为warn就只有error进而warn

设置为error就只有error,因为只会显示大于等于error级别的信息

不仅可以设置根目录的日志级别还可以设置某个包的日志级别,和设置分组对某个组设置日志级别:

快速创建日志对象

导入lombok

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

之后


@Slf4j
@RestController
@RequestMapping("/books")
public class BookController  {
////    加上@Slf4j注释就不用创建这个对象
//    private static final Logger log = LoggerFactory.getLogger(BookController.class);
//

    @GetMapping
    public String getById(){
        System.out.println("spring is running..");
        log.debug("debug..");
        log.info("info。。。");
        log.error("error...");
        log.warn("warn...");
        return "springboot is running...";

    }

}

日志输出格式控制

基础格式:

我们可以自己设置日志输出格式:

基础格式相当于:

文件记录日志

logging:
  file:
    name: server.log
  logback:
    rollingpolicy:
#      文件大小超过10mb就创建新文件
      max-file-size: 10MB
#      设置命名格式:类似server.2020-01-01.01.log
      file-name-pattern: serber.%d{yyyy-MM-dd}.%i.log

这样在本文件根目录就会出现一个叫做server.log的文件来记录日志信息

posted @ 2023-09-04 13:36  云归处、  阅读(31)  评论(0编辑  收藏  举报