做项目过程中的个人小笔记

1.SpringBoot中设置接口的返参中,自动去掉 null 值的字段配置,以及选择激活使用的环境

spring:
  profiles:
    # 默认激活 dev 环境
    active: dev
    #active: prod
  # 接口的返参中,自动去掉 null 值的字段
  jackson:
    default-property-inclusion: non_null
    date-format: yyyy-MM-dd HH:mm:ss

2.项目部署

2.1第一次使用CentOS遇到的一些问题`

2.1.1上传jar包到服务器,上传速度一直显示0kb

原因是没有安装lrzsz的包,所以先安装yum的下载管理器,然后利用yum安装该包就可以解决问题。
```shell
# 安装yum
sudo yum install yum
# 安装lrzsz
yum -y install lrzsz
```

image
可以看到jar已经可以正常上传了。

2.2使用maven进行项目打包前先进行clean防止缓存影响打包,之后点击package进行打包,终端显示Build success时表示打包成功

# 运行jar包
nohup java -jar xxxx.jar &
# 动态的查看日志
tail -f xxx.out
# 用于离线查看日志,即如果服务器前一天晚上报错,则需要使用该命令查看日志
view xxx.out

3.Linux常用命令

# 查询该文件夹下所有文件
ll
# 删除文件
rm -rf xxx
# 进入某个目录
cd xxx
# 返回上一级目录 
cd ..
# 用于查看某个进程的详细情况,如服务器跑了很多的服务,可以使用该命令查看这个服务的详情
ps -ef | grep java
# 用于停掉某个进程,如果一个服务器上部署了很多相同的服务,可以使用此命令关掉多余的服务
kill -9 51707

4.在CentOS7上配置JDK

参考博客如下,特别感谢:
参考博客1
参考博客2
参考博客3

1、卸载centos原本自带的openjdk
运行命令如下:

rpm -qa | grep java

2、然后通过rpm -e --nodeps删除系统自带的jdk,只需要删除控制台输出的java带版本号的条目
例如:rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64

3.更新源

sudo yum -y update

4.下载jdk17

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm

5、安装jdk 17

sudo yum -y install ./jdk-17_linux-x64_bin.rpm

4、验证

java -version

输出如下:
java version "17.0.7" 2023-04-18 LTS
Java(TM) SE Runtime Environment (build 17.0.7+8-LTS-224)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.7+8-LTS-224, mixed mode, sharing)

5.如何关闭CentOS防火墙

参考博客

1.首先切换到root权限:
su -root
2.进入/bin目录:
cd /bin
3.执行命令:
systemctl stop firewalld.service(关闭防火墙)
systemctl disable firewalld.service(关闭防火墙自动启动)
4.查看防火墙状态:systemctl status firewalld.service(查看防火墙服务状态)

6.CentOS 7安装MySQL 5.7【安装及密码配置、字符集配置、远程连接配置】

由于此博客十分详细,就不再重复记录。
安装全程看此博客绝对没有问题

7.【MySQL异常】解决java.sql.SQLException: null, message from server: “Host xxx‘ is not allowed to connect to

参考博客

8.解决虚拟机(linux)连接不上本地宿主(win11)数据库(mysql)问题

该问题经过我自己的研究和解决bug的过程,主要容易出现在:
(1)本地宿主机对虚拟机未开放ip和端口,所以需要开放一下对虚拟机的ip和如3306的数据库端口号;
(2)虚拟机防火墙未关闭,或者没有让防火墙将某端口进行开放,所以需要关闭防火墙,或者让某端口成为防火墙公开端口;
(3)本地宿主机数据库是否允许远程连接,一般centos使用root用户进行访问的时候,如果宿主机没有修改数据库相关配置,则root用户只允许localhost的ip进行访问,所以需要设置一下此配置。

参考博客:
该博客有很多种情况的分析,可以自行实验,可能每个人的情况不太一样。
此博客解决了我的问题,即连接主机数据库就相当于远程登录数据库,此时就需要在主机上面配置一下,让其他主机能够远程连接本地数据库。

9.Redis的配置与初步使用

由于此博客十分详细,就不再重复记录。
看完Redis的配置与初步使用再看看Redis的基本数据类型

10.SpringBoot引入Knife4j

依赖引入

<!--Knife4j接口工具 -->
<dependency>
	<groupId>com.github.xiaoymin</groupId>
	<artifactId>knife4j-spring-boot-starter</artifactId>
	<version>2.0.8</version>
</dependency>

写Knife4j配置类

package com.yupi.usercenter.config;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;


@Configuration // 标明是配置类
@EnableSwagger2WebMvc//开启swagger功能
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)  // DocumentationType.SWAGGER_2 固定的,代表swagger2
                .apiInfo(apiInfo()) // 用于生成API信息
                .select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
                // 扫描指定包下的接口,最为常用
                .apis(RequestHandlerSelectors.basePackage("com.yupi.usercenter.controller"))
                .paths(PathSelectors.any()
				)
                .build();
    }
    /**
     * 用于定义API主界面的信息,比如可以声明所有的API的总标题、描述、版本
     * @return
     */
    private ApiInfo apiInfo() {
        Contact contact = new Contact(
                "Alex", // 作者姓名
                "https://www.cnblogs.com/Alex-goforit", // 作者网址
                ""); // 作者邮箱
        return new ApiInfoBuilder()
                .title("学术伙伴匹配项目API") //  可以用来自定义API的主标题
                .description("学术伙伴匹配项目SwaggerAPI管理") // 可以用来描述整体的API
                .termsOfServiceUrl("https://www.cnblogs.com/Alex-goforit") // 用于定义服务的域名(跳转链接)
                .version("1.0") // 可以用来定义版本
                .contact(contact)
                .build(); //
    }
}

如果使用的SpringBoot版本 > 2.6,需要在SpringBoot配置中加入路径映射配置:

  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
posted @ 2024-06-14 21:36  LiangXin_Alex  阅读(8)  评论(0编辑  收藏  举报