• SpringBoot-运维实用篇复习(全)


    本文主要涉及SpringBoot和运维相关的配置,主要针对实际开发和上线的时候环境怎么设置问题,下面一起开启新的学习旅程吧,冲吧,小伙伴。

    在此处首先对SpringBoot的基础篇的知识进行总结,基础篇连接地址,具体如下:

    1)在联网的情况下使用IDEA创建springboot项目

    2)了解了parent和starter对于坐标依赖的管理。

    3)了解了启动类,启动boot程序,初始化spring容器,扫描类所在的包和加载bean。

    4)内嵌的Tomcat,可以使用,也可以排除。

    5)REST风格隐藏访问资源的行为,GET,POST.PUT,DELETE四种请求。

    6)@PathVariable,@RequetBody,@RequestParam三种参数接收的注解。

    7)组合注解@RestController和四个请求映射注解***Mapping。

    8)三种文件配置,properties,yaml,yml。

    9)springboot整合junit,整合mybatis,整合mybatis-plus(接口层直接继承BaseMapper),整合druid。

    10)可以使用lombok快速开发实体类,@Data注解就可以。

    11)继承BaseMapper快速开发数据层。

    12)分页查询需要依赖MP的拦截器。

    13)条件查询使用LambdaQueryWrapper。

    14)业务层的接口可以直接继承IService,不用自己写crud。

    15)业务层的实现类可以继承ServiceImpl,避免重写所有方法。

    16)表现层使用REST风格开发。

    17)使用工具类R进行数据的统一化处理。

    18)在前端进行请求发送,后端进行操作并显示在前端。

    目录

    一、工程打包与快速运行

    1.1、工程打包与运行(windows版)

    1.2、spring-boot-maven-plugin插件的作用

    1.3、Boot程序快速启动(Linux版)

    二、属性配置

    2.1、临时属性

    2.2、开发环境中的临时属性

     2.3、配置文件的四级分类

    三、多环境开发

    3.1、多环境开发(yaml版)

    3.2、多环境开发(文件版)

    3.3、多环境分组管理 

     四、日志相关操作

    4.1、日志基础操作

     4.2、日志输出格式控制

    4.3、文件记录日志


    一、工程打包与快速运行

    1.1、工程打包与运行(windows版)

    在生命周期中,先clean一下清除掉之前生成的target文件,然后需要将测试部分的test进行跳过,最后在双击package进行打包。可以在target中生成jar包,右键在资源管理器打开,在文件路径中输入cmd,在命令窗口运行jar即可,最后在浏览器访问即可。

    1.2、spring-boot-maven-plugin插件的作用

    该插件可以打出一个独立运行的jar包,jar包中主要包含三部分:1、程序;2、程序依赖得jar包;3、支持boot运行得工具包。

    1.3、Boot程序快速启动(Linux版)

    首先双击package打包程序项目,打开centos,启动虚拟机,然后右键在打开终端,通过指令ifconfig查看linux服务器ip地址。

     根据ip地址,在Xshell中建立远程连接,如下:

    连接成功,输入用户名和密码即可,远程操作。

    将XFTP软件也远程连接linux服务器,进行文件操作,如下:

     接下来,我们在Xshell使用linux指令在usr目录中创建一个名为app的目录。

    cd /   -> ll  ->cd usr -> ll -> mkdir app -> cd app

     现在可以在Xftp中将打包的项目jar包传到app文件夹内了,因为我登陆的不是root,所以需要在root下修改文件的权限,再上传,修改权限如下:

     文件上传成功如下:

     然后即可在服务器启动上传的项目了,如下:

    启动完成发现浏览器访问不了,需要将防火墙关掉,如下指令即可。

    systemctl stop firewalld.service

    然后在浏览器启动,会发现可以访问了,但是没有数据,如下:

    因为配置文件访问的事localhost,因为linux下的数据库不能访问localhost,所有需要在linux下建立一个数据库,首先需要在linux下安装mysql数据库,具体的方法如下:

    Linux安装MySQL(超详细)_普通网友的博客-CSDN博客_linux安装mysql

    当然里面应该会遇到一些小bug,自己搜索解决方案即可。

    输入指令 mysql -uroot -p 并输入密码,能进入则说明安装成功了,如下:

    在Navicat建立一个数据库连接,如下:

     需要在linux服务器的mysql上建立数据库test,并把之前的表product导出放到Linux环境下的数据库test中,如下:

     

    现在在Linux中先退出mysql,然后启动springboot项目,即可在浏览器访问了。

     访问效果如下:

    注意:本次操作过程中遇到了很多问题,最后都顺利解决了,没有再此博客上写细节,如果遇到各种细节问题,直接搜解决方案就可以,我给出的只是一个流程而已。

    总结:Boot程序依赖SpringBoot的maven插件即可打包出可执行的jar。运行jar使用jar命令运行,windows和linux下的boot打包程序一样,仅需确保运行环境有效即可。

    二、属性配置

    2.1、临时属性

    比如在执行过程中,如果启动boot程序时,需要临时修改端口号,那么怎么设置呢,可以在命令窗口加上修改端口号的操作,如下,修改端口号为81:

    浏览器使用该端口号进行访问如下:

     如果携带多个属性,属性之间使用多个空格隔开,命令行的配置属性可以覆盖在项目中配置的。

    2.2、开发环境中的临时属性

    怎么在IDEA中测试临时属性生效呢,我们在IDE中点击编辑配置,如下:

    我们可以在环境中的程序参数中修改服务器端口号,如下:

    启动boot程序后使用浏览器访问8081端口,如下:

    另外在启动类中,可以去掉参数args,不携带参数启动springboot。

    1. import org.springframework.boot.SpringApplication;
    2. import org.springframework.boot.autoconfigure.SpringBootApplication;
    3. @SpringBootApplication
    4. public class ItemApplication {
    5. public static void main(String[] args) {
    6. // SpringApplication.run(ItemApplication.class, args);
    7. //args是从外部配置读取的形参,可以去掉
    8. SpringApplication.run(ItemApplication.class);
    9. }
    10. }

     2.3、配置文件的四级分类

     正常开发人员会在开发过程中设置一些配置,然而项目经理在上限的时候有时候会修改相应的配置,boot基于现有的配置在弄一套配置,去覆盖原来的配置。

    在IDEA的resource目录下创建一个config目录,在该目录下创建一个.yml的配置文件,该配置文件的配置可以覆盖原来的配置,比如修改端口号为8083,如下:

    启动boot程序,可以发现端口号已经被覆盖了。

     在打包的工程目录下,也可以创建一个配置文件,覆盖之前的配置,这样就有三级配置了。在该通缉目录中再创建config目录,一个再放置一个配置文件,属于最后的配置,也就说第4级。

    最后总结一下:

    三、多环境开发

    3.1、多环境开发(yaml版)

    首先是设置环境,然后是应用环境,环境包括:生成、开发和测试,使用---划分环境,具体如下:

    对于配置过时的问题,使用新的格式就可以。

    3.2、多环境开发(文件版)

    把几个环境配置文件分开下,在主配置文件中设置使用哪个配置文件,如下:

    3.3、多环境分组管理 

    根据功能可以对配置文件进行拆分成多个不同的配置文件,使用include加载多个环境。

     

    使用group代替incude,降低配置量,便于线上的维护和管理。

    3.4、多环境开发控制 

     使用maven中的环境配置控制boot中的环境配置。

     在springboot中使用@符号引用maven中配置的变量值。

     最后,先clean,再打包,就可以看到maven修改后的配置信息。

     四、日志相关操作

    4.1、日志基础操作

    使用日志工具去记录日志,如下所示。

     

    可以设置日志的输出级别和应用日志级别。

     使用lombok提供的注解可以简化日志的声明操作。

     4.2、日志输出格式控制

    正常默认的日志输出格式如下,首先是时间,然后是进程的PID,然后是所属线程,然后是所属的类或接口,最后打印的是具体的日志信息。 

    可以根据具体的需求在配置文件中设置日志的输出格式,如下:

    4.3、文件记录日志

    一般会用文件记录日志,防止日志找不到了,哈哈。上面的是设置一个日志文件,下面的是设置滚动日志文件,当文件大于3kB就保存为一个。

  • 相关阅读:
    基于SpringBoot+Vue架构的药物咨询平台
    中间件
    解决java与python整合过程的问题-执行python问题报错
    高通camera-sensor分辨率简单梳理
    面渣逆袭:Spring三十五问,四万字+五十图详解
    怎么才能实现一个链接自动识别安卓.apk苹果.ipa手机和win电脑wac电脑
    Creo 9.0 基准特征:基准轴
    单目相机模型
    Java学习day06:面向对象基础,构造方法,成员/局部变量
    Node.js 是如何做 GC (垃圾回收)的?
  • 原文地址:https://blog.csdn.net/nuist_NJUPT/article/details/127801725