自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liuzhongyu

互相学习,互相探讨!

  • 博客(68)
  • 收藏
  • 关注

原创 关于微服务鉴权的一种实现方式

此文章主要介绍客户端token与网关API的结合的鉴权实现方式。这种方式要求每个请求的请求头或者参数里面必须携带token,所有请求必须经过网关,有效地隐藏了微服务。目前比较常用的生成token的方式,一种是通过MD5的方式生成token,一种是JWT:base64编码信息+签名。如选择MD5的方式生成token,借助redis作为缓存做判断,将token作为key,登录信息作为value,设置key失效时间做登录时效。选择JWT,设置过期时间以及登录信息进行鉴权。先来看第一种:MD

2022-01-04 10:36:37 1683

原创 Java使用策略模式实现聚石塔接口调用

背景有个业务需求对接淘宝开放平台。这里面涉及到了聚石塔,聚石塔是阿里系的一款产品,可以理解为一个服务器,淘宝开发平台一些较为敏感的数据,会要求发布进聚石塔。外部需要调用要通过走奇门网关。奇门中心也有详细描述。研究了一下文档发现,需要写两套代码:1、第一套适配聚石塔接口,发布在聚石塔内;2、更新最新的SDK,放在第二套代码,通过SDK里面的奇门调用写代码之前还需要在奇门中心配置好自定义api场景,并且规定好统一的入参以及响应重点!!聚石塔内,一个appKey在一个场景内,只能授权.

2021-12-29 20:50:43 987 1

原创 Feign调用请求头丢失问题

在项目中运用了openfeign,却报feign.FeignException$NotFound: [404] during [GET] to.....检查了配置:1、引入的pom文件:spring-cloud-starter-openfeign2、Application中的注解@EnableFeignClients3、接口中的注解@FeignClient4、配置文件中的spring.application.name项目中用的shiro+jwt进行权限校验。调用服务接口时请求头需

2021-10-09 09:26:17 671

原创 MyBatis-plus分页拦截器total失效问题

MyBatis-plus是对MyBatis的增强运用,封装了一套增删改查

2021-08-01 09:25:29 2622 7

原创 SpringBoot解决关于跨域导致sessionId不一致问题

在用谷歌的kaptcha做验证码登录校验遇到了如下问题用谷歌浏览器(版本85)访问验证码

2020-09-09 20:30:49 5979 11

原创 谈对接多个第三方平台时的代码分层

最近做的项目均涉及到对接多个第三方平台。每个平台的授权各不相同,有些平台会提供SDK,有些平台则只能通过http去调用。

2022-02-02 11:19:56 1220

原创 feign踩坑之报retryableRibbonLoadBalancingHttpClient

我这边用的是springcloud2.1.0.RELEASE版本,spring-cloud-starter-openfeign用的默认版本。话不多说,直接上报错图Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'retryableRibbonLoadBalancingHttpClient' defined in org.spring.

2021-11-16 09:02:59 5868 3

原创 SpringCloud整合Activiti踩坑记录

最近需要用到工作流,选择了Activiti,刚开始配置起来并没有很顺利。记录一下希望对读者们有帮助。先来看我这边项目的环境:主要为JDK1.8,SpringbBoot2.3.5,MyBatis-Plus3.3.2,MySql8.0.21,Shiro1.5.3,idea 2020.2<java.version>1.8</java.version><spring.cloud.version>Hoxton.SR9</spring.cloud.version

2021-09-07 13:24:25 1601 1

原创 HttpClient实现调用第三方API

简介目前前后端项目分离的项目,通过Resutful风格居多。当需要调用第三方api的时,HttpClient则派上用场。HttpClient是属于Apache Jakarta Common 下的一个工具包,可以实现所有Http的请求方法,如Get、Post、Put等,支持Https协议,支持代理服务器等。使用步骤使用HttpClients.createDefault()创建HttpClient对象(CloseableHttpClient); 创建HttpPos...

2021-07-28 10:00:43 1360 1

原创 Java实现执行sql脚本压缩包接口

如果项目已经发布过生产或者uat环境后,就会保存sql脚本,再一次发迭代版本的时候,会将sql脚本放在服务器上运行一遍。这个工作量可大可小,如果修改或者插入的数据多,一个文件一个文件去执行可想而知,并且...

2021-06-01 14:00:38 560 2

原创 Java自定义校验注解

出于程序的稳定性以及简洁,会对数据入参时进行校验,常用的两个包 javax.validation.constraints、org.hibernate.validator.constraints,如@NotNull、@Length等。很多时候随着业务的不同,这些注解不一定能满足需求,这时候可以通过自定义注解来校验核心注解为@Constraint如下为一个自定义的数字校验注解@Pattern(regexp = "[0-9]*")@Target({ElementType.FIELD, Elemen

2021-05-07 15:20:15 1043

原创 SpringCloud GateWay集成Nacos实现动态网关

简介Spring Cloud Gateway启动时候,会将路由配置和规则加载到内存,一般情况下,我们对路由进行了增删改查的操作,需要重启网关才能生效。本文介绍Nacos作为配置中心来实现动态网关。最终效果实现:在网关编辑配置页面,配置格式YAML,通过改变配置内容中的applicationList,点击发布后无需重启网关,实现动态刷新。实现思路实现 ApplicationEventPublisherAware 接口 spring事件监听者 ApplicationEventPubli..

2021-04-13 14:20:26 878

原创 GitLab访问失败,文件夹爆满的处理方式

今天拉代码的时候发现拉取失败,点开GitLab则出现如下界面然后打开服务器观察了下,发现有个盘爆满了经排查,需要将GitLab的存储默认路径指定到其他盘首先停止Gitlab服务gitlab -ctl stop打开配置文件:vim /etc/gitlab/gitlab.rb接着搜索git_data_dirs,将#放开,path里面指定一个空间大一点的盘###! path that doesn't contain symlinks.**git_data_di.

2021-02-08 11:31:35 691 4

原创 Java构建树形结构,根据父级获取所有子级,以及子级获取父级

项目中,经常有用到树形结构数据,例如构建菜单、构建机构树等。这里分享构建树形结构,根据父级获取所有子级,以及子级获取父级的一种方法。首先,表结构需要包括id以及父级parentId,如下为返回参考的DTO类:@Datapublic class TreeDTO { @ApiModelProperty(notes = "id") private String id; @ApiModelProperty(notes = "名称") private String na

2021-01-31 22:17:40 11509 3

原创 SpringBoot+Vue实现WebSocket

WebSocket有多种实现方式,如使用@ServerEndpoint注解监听一个WebSocket请求路径; 使用Spring提供的低层级WebSocket API实现 使用STOMP消息实现 本文介绍的是使用@ServerEndpoint注解的实现方式。

2020-12-31 13:01:30 1307

原创 SpringBoot重写jar包中的某个方法

开发过程中,我们会引入很多工具类,在pom.xml引入,idea中external libraries可以看到引入jar的源码。但是我们要重写jar中的某个方法怎么办呢?下面将介绍其中一种方法:@ComponentScan过滤不需要注入的类@ComponentScan 注解默认会扫描该类所在的包下所有的配置类,其中ComponentScan下有两个注解includeFilters和excludeFiltersincludeFilters:指定扫描时需要实例化的类型 excludeFilters

2020-11-30 11:15:46 6856 14

原创 从0到1搭建持续集成环境:Jenkins+Gitlab

目录什么是持续集成?持续集成的流程持续集成的组成要素持续集成的好处持续集成环境部署小编搭建的是Jenkins+Gitlab的集成环境,下面将介绍下持续集成:什么是持续集成?持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干。 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干 之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。 通过持续集成, 团队可..

2020-10-24 10:07:56 1211

原创 Jenkins部署SpringBoot和Vue

续【持续集成环境】专栏目录Jenkins部署SpringBoot打开Jenkins,构建maven项目点击配置,连接Git,指定分支为*/masterPreSteps​核心内容为 Post StepsJenKins部署Vuecentos安装nodejs和vue在Jenkins创建自由风格项目连接Git,构建ShellJenkins部署SpringBoot打开Jenkins,构建maven项目点击配置,连接Git,指定分支为*/master...

2020-10-24 10:05:13 770

原创 Centos7安装nginx并部署前端项目

一、安装各种依赖#gcc安装,nginx源码编译需要yum install gcc-c++#PCRE pcre-devel 安装,nginx 的 http 模块使用 pcre 来解析正则表达式yum install -y pcre pcre-devel#zlib安装,nginx 使用zlib对http包的内容进行gzipyum install -y zlib zlib-devel#OpenSSL 安装,强大的安全套接字层密码库,nginx 不仅支持 http 协议,还支持 https

2020-10-23 22:26:42 2266 1

原创 Java关于时间格式化的方法

目录一、@JsonFormat 注解二、@JsonComponent 注解(全局)一般从数据库获取的时间或日期时间格式化为date或者datetime,为了方便前端渲染,API接口返回的时候需要对日期进行格式化转换,通常会用到SimpleDateFormat工具处理。SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");String time = dateFormat.format(new Date());...

2020-09-04 22:56:36 1951 3

转载 Centos7如何创建用户并授权

为了方便多人使用一台服务器,而且root拥有最高权限,相对来说比较敏感,centos可以创建用户。个人用户的权限只可以在本home下有完整权限,其他目录要看别人授权。1、创建新用户并修改密码:adduser [用户名]服务器为这个用户初始化密码,需要更改密码passwd [用户名]2、授权1)添加sudoers文件可写权限chmod -v u+w /etc/sudoers2)修改sudoers文件 使用vim编辑器打开sudoers文件:vim /e.

2020-07-20 22:04:35 3335

原创 mysql查询近七天、近三十天、近年(按月份)的所有统计数据

目录一、查询近七天、近三十天二、查询近年,即十二个月的数据在做统计表的时候,需要用mysql查询近7天的数据,当某一天数据为0的时候也需要返回主要用到:infull函数 union interval函数 date_sub函数infull函数:infull() 函数用于判断第一个表达式是否为 null,如果为 null 则返回第二个参数的值,如果不为 null 则返回第一个参数的值。union:union操作符用于合并两个或多个 select 语句的结果集。in.

2020-07-16 20:06:19 7702

原创 vue实现tab切换和滚动锚点导航

tab切换<template> <div> <div style="padding:15px;"> <div class="tabs-base"> <lzy-tabs size="large" @tabclick="tabChangeHander"> <lz...

2020-07-14 16:41:06 4812

原创 本地项目上传到GitLab(IDEA版)

首先在IDEA和GitLab分别创建一个项目GitLab创建新项目后需要添加成员用户,否则会报Remote URL test failed在IDEA新建Maven项目1)第一步2)第二步添加3)第三步提交代码4)第四步Push代码...

2020-07-13 10:27:25 946

原创 SpringBoot表单校验之@NotNull、@NotEmpty、@NotBlank的区别

保存或者修改进行表单提交时,一般后端对前端返回数据进行约定校验,其中最常用的就是非空判断。涉及到注解@NotNull、@NotEmpty、@NotBlank三者的区别如下:@NotNull:不能为null,但可以为empty(""," “,” ") ,一般用在基本数据类型的非空校验上,而且被其标注的字段可以使用 @size/@Max/@Min对字段数值进行大小的控制,例如Integer、BigDecimal、String等 @NotBlank:只应用于char值可读序列,即只用于String,且.

2020-06-29 14:07:43 3404

原创 服务器使jar包始终运行,首次启动慢的解决方案

目录一、服务器使jar包始终运行二、SpringBoot启动jar首次启动慢的解决方案一、服务器使jar包始终运行把java程序打成jar包后,在服务器终端执行,如果使用java -jar xxxx.jar执行,当我们退出终端的时候,xxxx.jar这个程序也会停止。为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行原因是:直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子..

2020-06-23 22:20:19 3991

原创 持续集成环境-(6)Jenkins Maven安装与配置

Jenkins安装Maven来编译和打包项目。(服务器安装Maven请点击)全局工具配置关联JDK和MavenJenkins->Global Tool Configuration->JDK->新增JDK,配置如下:Maven->新增Maven,配置如下:添加Jenkins全局变量Manage Jenkins->Configure System->Global Properties ,添加三个全局变量JAVA_HOME、M2_HOME、..

2020-05-12 19:52:34 382

原创 持续集成环境-(5)Jenkins从GitLab上拉取项目

服务器安装GitLabJenkins从GitLab上拉取项目主要有两种方式 HTTP和SSH目录Jenkins安装Git插件和Git工具"Clone with HTTP""Clone with SSH" (SSH密钥)Jenkins安装Git插件和Git工具Jenkins->Manage Jenkins->Manage Plugins,点击Available(可选插件),搜索"Git""Clone with HTTP"创建凭证Jenkins-&gt

2020-05-11 22:31:28 919

原创 持续集成环境-(4)Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。安装Credentials Binding插件安装完后可以看到菜单栏新增凭据Username with password:用户名和密码SSH Username with private key: 使用SSH用户和密钥Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置...

2020-05-11 20:50:05 255

原创 持续集成环境-(3)Jenkins用户权限管理

安装Role-based Authorization Strategy插件Jenkins->Manage Jenkins->Manage Plugins,点击Available(可选插件),搜索"Role"开启权限全局安全配置授权策略切换为"Role-Based Strategy",保存创建角色在系统管理页面进入 Manage and Assign Roles点击"Manage Roles"Global roles(全局角色):管理员等高级用..

2020-05-11 20:04:27 322

原创 持续集成环境-(2)Jenkins插件管理

1、修改Jenkins插件下载地址(将国外改成国内,下载插件达到速度提升)Jenkins->Manage Jenkins->Manage Plugins,点击Availablecd /var/lib/jenkins/updates国内插件sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.jso..

2020-05-11 18:14:49 247

原创 持续集成环境-(1)Jenkins安装

1)安装JDKJenkins需要依赖JDK,前提要安装JDK。yum install java-1.8.0-openjdk* -y安装目录为:/usr/lib/jvm2)获取jenkins安装包下载页面:https://jenkins.io/zh/download/安装文件:jenkins-2.190.3-1.1.noarch.rpm3)上传到服务器安装rpm -ivh jenkins-2.190.3-1.1.noarch.rpm4)修改Jenkins配置进入e

2020-05-11 16:26:54 421

原创 Centos7安装GitLab

目录1、安装相关依赖2、启动ssh服务&设置为开机启动3. 设置postfix开机自启,并启动,postfix支持gitlab发信功能4. 开放ssh以及http服务,然后重新加载防火墙列表5. 下载gitlab包,并且安装在线下载安装包:6. 修改gitlab配置7. 重载配置及启动gitlab8. 把端口添加到防火墙1、安装相关依赖yum...

2020-05-03 13:55:59 1153 2

原创 Docker中修改mysql最大连接数及配置文件

频繁操作mysql,报了Too many connections的错,需要更改mysql的最大连接数max_connections。我用的是docker中的mysql。首先用docker ps查看镜像进入镜像mysql镜像内部(6df0a4dc64a2为mysql镜像Id)docker exec -it 6df0a4dc64a2 /bin/bash接着输入mysq...

2020-04-13 22:02:42 2961

原创 阿里云服务器安装Maven

首先要先安装jdk环境,点击有详解目录第一步,进入maven官网http://maven.apache.org/download.cgi下载apache-maven-3.6.3-bin.tar.gz第二步,用Xftp工具将apache-maven-3.6.3-bin.tar.gz传入服务器 (点击查看Xftp安装)第三步,进入root下maven文件夹,然后解压apache-ma...

2020-04-05 22:43:02 1257

原创 阿里云服务器Centos7安装Git,并且实现与Github的连接

安装Git首先,查看是否已安装过git,输入git --version没有出现版本则,输入yum install git接着对git进行初始化设置,即用户名和邮箱git config --global user.name "yourname"git config --global user.email "youremail@xx.com"生成证书ssh...

2020-04-05 22:05:47 952

原创 Docker进入Mysql报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在Docker进入Mysql时,报了ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),账号密码是正确的。通过不断搜寻解决方法后,最后输入mysql -uroot -p123456 -h127.0.0.1 -P 3306 -D mysql成功进入。...

2020-03-13 21:38:16 10942 8

转载 ES6 数组去重及最大最小值获取

1.数组去重解决方案:使用了ES6新增的set数据解构的去重特性,然后在将生成的set对象转换成数组。<script type="text/javascript"> var arr = [1, 2, 3, 5, 1, 5, 7, 3];var newArray = Array.from( new Set(arr) );console.log(newArray)<...

2020-02-25 11:57:35 888

转载 SpringData之@Query注解与@Modifying注解

目录索引参数与命名参数@Modifying注解@Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。 索引参数与命名参数  1、索引参数如下所示,索引值从1开始,查询中"?X"个数需要与方法定义的参数个数相一致,并且顺序也要一致。...

2020-01-25 16:14:33 301

原创 centos7执行ip addr命令ens33没有ip地址

之前使用正常的虚拟机,突然的就连接不上了。执行ip addr命令ens33没有ip地址查了几篇相关文章解决方法,主要有四种:mac地址问题 ONBOOT问题 uuid问题 NetworkManager问题目录mac地址问题ONBOOT问题uuid问题NetworkManager问题mac地址问题(我用的VMware Workstation P...

2020-01-13 14:53:20 7471 16

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除