- 博客(35)
- 收藏
- 关注
原创 docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)
使用docker+jenkins+gitlab实现ci/cd
2023-11-02 09:33:14
4554
原创 Seata分布式事务
随着系统数据量的提升,微服务架构的发展,我们从传统的一个应用一个服务一个数据库的时代,发展到,一个应用对应多个服务(并且服务部署到了不同的服务器,这也就是所谓的SOA化,也就是业务服务化),每个服务都对应有自己的数据库,此时当多个服务之间存在事务型操作时,本地的事务无法满足,多个服务之间多个数据库之间的事务型操作;分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。
2023-03-30 23:45:23
649
原创 图片、视频校验工具类
注:下面工具类主要用于对图片和视频格式进行校验,所抛出异常为作者自己声明的异常,此处可以根据自己业务情况,进行声明public class ImageUtils { /** * 图片校验(上传单个图片) * * @param file * @return void * @Description * @author fuxshen * @date 2022-04-29 08:58:17 **/ public static void checkImage(Multipa
2022-04-30 16:02:59
1285
原创 springAOP定义一个切面,切入日志
什么是springAOPAOP (Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AoP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。定义切面切入日志首先介绍一下aop中execution 表达式切入点表达式:executi
2022-04-28 10:10:56
556
原创 idea2021中Activiti BPMN visualizer简单使用
下载插件Activiti BPMN visualizer具体流程1、创建保存BPMN保存目录在 idea 中使用插件:Activiti BPMN visualizer,创建流程图,具体使用如下:注:将流程图创建在 resources\activiti 包下,入下图所示2、创建BPMN文件在新建的 activiti 包上右键,选择 New Activiti,填写文件名称后回车即可创建完成3、编写具体流程在创建好的文件中任意位置右键,选择 View BPMN Diagram,打开可
2022-04-23 17:01:37
16318
13
原创 微信支付介绍
微信支付介绍微信扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。 微信支付开发者文档微信扫码支付申请第一步:注册公众号(类型须为:服务号)请根据营业执照类型选择以下主体注册:个体工商户| 企业/公司| 政府| 媒体| 其他类型。第二步:认证公众号公众号认证后才可申请微信支付,认证费:300元/年。第三步:提交资料申请微信支付登录公众平台,点击左侧菜单【微信支付】,开始填写资
2022-04-22 21:46:49
1739
原创 CopyBean工具类
引入依赖 <dependency> <groupId>com.github.dozermapper</groupId> <artifactId>dozer-core</artifactId> <version>6.1.0</version> </dependency>import org.dozer.Doz
2022-04-14 16:52:57
464
原创 MySql索引
索引概述索引是我们数据库中的一种数据结构,主要作用提高查询效率;创建索引的列,经常作为查询条件出现,提高查询效率索引和约束的区别注:我们在mysql的优化时,时常会混淆索引和约束这两个概念,下面对这两个概念做具体的解释约束更像是一个逻辑的概念,用来保证数据的完整性,而索引是一个数据结构,既有逻辑上的概念,在数据库中还代表着物理存储的方式。什么是数据完整性概念:很容易理解,就如字面意思,我们需要保证我们存入的数据满足特定的要求。而如果是文件系统的话,我们一般通过程序端进行控制;但关系型数据库
2022-04-13 20:18:19
494
原创 对象存储介绍(腾讯云cos)
什么是对象存储对象存储是一种将数据作为对象进行管理的计算机数据存储体系结构,与其他存储体系结构(例如将数据作为文件层级管理的文件系统)以及将数据作为块和扇区内的块进行管理的块存储相对。每个对象通常包括数据本身,可变数量的元数据和全局唯一标识符。对象存储可以在多个级别实现,包括设备级别(对象存储设备),系统级别和接口级别。在每种情况下,对象存储都试图实现其他存储架构无法解决的功能,例如可以由应用程序直接编程的接口,可以跨越多个物理硬件实例的命名空间,以及数据管理功能,如数据复制和数据分发在对象级粒度。相
2022-03-25 12:33:19
17735
4
原创 微信登录介绍
前期准备注册开发者账号微信开放平台提交网站应用审核填写过后,还有有一个页面需要填写,提交一份纸质版申请书扫描件(会提供模板,我们下载再来填写后,需盖章,签名),配置回调域名(扫码登录后会跳转的页面)等。 之后提交审核即可,等微信审核通过,我们即可获得我们需要的网页应用的appid和AppSecret,并配置后回调的域名了(这三样是我们开发所必须的)。授权流程说明微信官方文档微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入
2022-03-23 22:22:47
851
原创 OAuth2介绍
OAuth2什么是OAuth2OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。演化历程背景:照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源,这时云冲印服务就需要获取用户的授权,去云服务器上获取照片拥有者需要获取的照片资源。资源拥有者:照片拥有者
2022-03-22 19:42:57
413
原创 用户认证与spring cloud gateway网关整合
思路所有请求都会经过服务网关,服务网关对外暴露服务,在网关进行统一用户认证;既然要在网关进行用户认证,网关得知道对哪些url进行认证,所以我们得对ur制定规则Api接口异步请求的,我们采取url规则匹配,如:/api//auth/,如凡是满足该规则的都必须用户认证在服务网关中加上过滤器,过滤请求,进行认证请求对下面Filter代码进行解释:用户登录后,返回通过jwt生成的token,返回个前端,在token的有效时间内,用户访问需要认证的接口时,通过getUserId,拿到token中的用
2022-03-21 21:05:35
700
原创 腾讯云短信服务介绍
下面主要介绍,在项目开发中需要集成短信服务,处理相关业务(此处本人使用的是腾讯云短信服务)腾讯云短信服务步骤登录腾讯云注册腾讯云个人实名认证进入到控制台, 在云产品中找到短信默认是没有开通的,阅读服务协议后,点击开始接入目前来说,只要实名认证过的,直接就可以开通短信服务这个时候,就可以查看短信控制面板了测试短信发送快速开始现在创建签名申请,网站的话,需要备案比较麻烦,可以用自己的微信去注册一个公众号,我这边目前已经有公众号,所以使用公众号就可以使用短信服务(此
2022-03-20 23:39:12
2326
原创 JWT介绍
JWT介绍JWT工具JWT(Json Web Token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。比如用在用户登录上JWT最重要的作用就是对 token信息的防伪作用。JWT的原理,一个JWT由三个部分组成:公共部分、私有部分、签名部分。最后由这三者组合进行base64编码得到JWT。介绍1、公共部分主要是该JWT的相关配置参数,比如签名的加密算法、格式.
2022-03-20 18:19:26
1132
原创 全局异常处理和自定义异常
下面为作者在学习过程中,全局异常处理和自定义全局异常的操作步骤,记录分享给大家,可能有所不足(还望包含)全局统一返回结果类package com.it.yygh.common.result;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;/** * 全局统一返回结果类 * <p> * 创建时间: 2022-02-0
2022-03-20 15:44:26
468
原创 maven(settings.xml配置)
setting.xml相关配置<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 ht
2022-03-18 19:38:21
197
原创 微服务网关介绍
网关介绍为什么会出现微服务网关API网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:(1)客户端会多次请求不同的微服务,增加了客户端的复杂性。(2)存在跨域请求,在一定场景下处理相对复杂。(3)认证复杂,每个服务都需要独立认证。(4)难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通
2022-03-08 21:13:59
1330
原创 安装Docker与卸载
安装docker与卸载环境准备1、此处使用的是腾讯云服务器,系统版本为2、使用xshell连接云服务器环境查看1)系统内核需要是3.10以上的命令:uname -r2)查看系统版本(版本需要在CentOS7以上)命令:cat /etc/os-release安装帮助文档:https://docs.docker.com/engine/install/1.卸载旧版本yum remove docker \ docker-client
2022-03-01 17:48:38
334
原创 Docker安装MongoDB
Docker安装MongoDB注:此处对外暴露的端口为27019,最好不要使用27017,因为此处使用默认的端口容易被攻击1、安装命令:(此处未指定版本安转的默认为最新版)docker run -d --restart=always -p 27019:27017 --name mymongo -v /home/mongodb:/data/db -d mongo2、给mongo设置账号和密码为MongoDB添加管理员用户进入MongoDBdocker exec -it 51a5b5e0
2022-02-28 16:37:08
6073
2
原创 Nacos简介
Nacos简介背景:当我们需要将微服务中不同模块之间实现服务调用时,我们需要使用到远程调用的1、Nacos概述1.1 什么是NacosNacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应
2022-02-24 16:56:44
164802
8
原创 解决idea配置文件,中文乱码问题
解决idea配置文件,中文乱码问题如果在打开项目,配置文件出现下图问题解决方法:Settings->Editor->File Encodings修改配置为UTF-8
2022-02-21 20:49:31
707
原创 IDEA如何删除(已COMMIT在本地版本里的代码)
**场景:**提交代码时,如果不小心提交了不需要提交的内容,在本地仓库中,此时需要回滚版本,如何回滚步骤:1、选中项目 >> 右键git >> show History 查看历史提交记录2.选中自己commit需要回滚的位置 >> 右键 >> Copy Revision Number 这是复制需要回滚的版本号3.回到项目 选中项目 >> 右键 >> Git >> Repository >> R
2022-01-14 15:53:17
11659
1
原创 idea中terminal使用npm报不是内部或外部命令,也不是可运行的程序 或批处理文件。
前提:windows电脑装好node以及npm环境之后在idea工具使用npm命令存在以下问题:‘npm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决方法:进入File->|Settings -> Tools -> Terminal将shell path替换成此处内容:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe...
2022-01-11 14:28:00
10799
6
原创 在IDEA中右键New没有创建Vue文件选项解决办法
第一步:进入目录settings->Editor->File and Code Templates第二步:添加模板步骤模板内容如下所示<template>#[[$END$]]#</template><script>export default {name: "${NAME}"}</script><style scoped></style>再次添加的时,就能看到了...
2022-01-09 14:53:21
2570
原创 在IDEA中右键New没有创建Mapper文件选项解决办法
在IDEA中右键New没有创建Mapper文件选项解决办法**第一步:**进入目录settings->Editor->File and Code Templates**第二步:**添加模板步骤此处为模板的内容<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybati
2022-01-09 14:45:05
1242
原创 entity中(bo、dto、 po、 query、 vo区别)
bo :业务对象(表单提交对象,可组合成过个po对象插入数据)dto :传输对象 (相对于po对象,可选择隐藏po不对外的字段,或添加辅助字段)po :持久层对象(对应一条数据库记录)query :查询对象(多个查询参数的接口方法,应使用query封装)vo :显示层对象(在dto的基础上,隐藏dto字段或添加辅助字段,以供页面显示使用)...
2021-11-12 14:48:47
2173
原创 IDEA 模板设置
IDEA模板设置打开Module Setting面板(mac快捷键 commond + ,,win快捷键ctrl+alt+s)设置 Tab缩放风格Editor - Code Style - Java统一使用 Tab 缩进,而不是 空格设置 文件头部注释模板Editor - File and Code Templates - Includes** * // TODO 需替换为描述信息 * <p> * 创建时间: ${YEAR}-${MONTH}-${DAY} ${HOUR}
2021-10-14 11:59:54
543
原创 git commit 提交规范
Commit message格式: 注意冒号后面有空格。build: 构建版本chore: 改变构建流程、或者增加依赖库、工具等docs: 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等feat: 新增featurefix: 修复bugperf: 优化相关,比如提升性能、体验refactor: 代码重构,没有加新功能或者修复bugrevert: 回滚到上一个版本style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑test: 测试单元代
2021-10-13 14:00:14
255
原创 easyExcel导出导入通用方法
easyExcel导出通用方法开箱即用导出效果导出通用方法```java@Slf4jpublic class EasyExcelExport { /** * EasyExcel输出通用 * * @param response * @param title * @param companyName * @param list * @param cla */ public static void
2021-10-11 19:13:58
6832
5
原创 生成验证码工具类
生成验证码样式为下图所示:public class VerifyCodeUtils{ //使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符 public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ"; private static Random random = new Random(); /** *
2021-09-14 10:24:30
176
原创 生成随机salt的工具类
public class SaltUtils { //生成salt的静态方法 public static String getSalt(int n){ char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890!@#$%^&*()".toCharArray(); StringBuilder sb = new StringBuilder();
2021-09-14 10:18:28
929
原创 java根据两个时间段来获取所处季度
java根据两个时间段来获取所处季度注意次工具类,没有考虑跨年的季度的情况,时间的格式需要是(例如2021-01-02)否则无法获取import lombok.extern.slf4j.Slf4j;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * 日期工具类 */@Slf4jpublic class DateUtils { public stati
2021-08-27 18:17:16
2316
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人