自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 mybatis拦截器实现数据脱敏&拦截器使用

PHONE("phone", "11位手机号", "^(\\d{3})\\d{4}(\\d{4})$", "$1****$2"),ID_CARD("idCard", "16或者18身份证号", "^(\\d{4})\\d{11,13}(\\w{1})$", "$1****$2"), BANK_CARD("bankCardNo", "银行卡号","^(\\d{4})\\d*(\\d{4})$", "$1****$2"), ADDRESS("addrss", "地址", "(?

2022-09-20 15:59:38 3121 2

原创 使用Spring Event组合@Async注解,轻松实现代码的解耦和异步

发布完事件之后,我们需要有对应的监听类去监听我们发布的事件,在监听类中执行我们对应的业务逻辑。在我们写代码的时候,通常需要考虑到代码的耦合性,因为低耦合的代码有利于我们后续的维护和迭代,而Spring Event可以说是一个降低代码耦合度的神器,配合@Async注解更是能够轻松实现异步。如果我需要新增积分,那么我就发布一个新增积分的事件,需要成为会员,那么我就发布一个成为会员的事件,通过不同的事件,将业务逻辑解耦,只需要发布事件,不需要关注具体的实现逻辑,代码的条理更清晰。代码的复用性得到了很大的提高。

2022-09-14 14:18:36 779

原创 为提高效率使用ParallelStream竟出现各种问题

小编最近新接手一个任务需要对千万级数据量访问第三方接口可想而知对性能要求极高,当时我第一反应就是请求第三方接口时使用ParallelStream对数据进行操作这不就解决了吗。想象是美好的可结果直接将我按在地上摩擦.............

2022-07-23 12:41:30 2229

原创 地表最强工具包合集,让开发效率提升50%

目录1. Collections1.1 排序1.2 获取最大或最小值1.3 转换线程安全集合1.4 返回空集合1.5 二分查找1.6 转换成不可修改集合2. CollectionUtils2.1 集合判空2.2 对两个集合进行操作3. Lists3.1 创建空集合3.2 快速初始化集合3.3 笛卡尔积3.4 分页3.5 流处理3.6 颠倒顺序4. Objects4.1 对象判空4.2 对象为空抛异常4.3 判断两个对象是否相等4.4 获取对象的hashCode5. BooleanUtils5.1 判断tru

2022-06-16 10:34:48 506 2

原创 IDEA版Postman面世,功能强大!

号称是IDEA版本的Postman。它是一个功能强大的Restful API工具包插件,可以根据已有的方法快速生成接口调试用例。它有一个漂亮的界面来完成请求、检查服务器响应、存储你的API请求和导出API请求,该插件能帮助你在IDEA内更快更高效地调试API!下面是使用调试mall项目API接口的一张效果图,用起来还是非常方便的!如果你想使用CURL工具的话,也可以通过CURL按钮拷贝命令。在我们调试接口时,可以通过保存按钮,将接口和调试信息都保持到API列表里去。在API导航中可以查看所有接口,第一次需要

2022-06-14 10:08:24 1034

转载 RabbitMQ和Kafka你真的使用正确了吗

这篇文章会先介绍一下基本的异步消息模式,然后再介绍一下RabbitMQ和Kafka以及他们的内部结构信息。主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们会说明一下怎样选择这两种技术。异步消息模式异步消息可以作为解耦消息的生产和处理的一种解决方案。提到消息系统,我们通常会想到两种主要的消息模式——消息队列和发布/订阅模式。消息队列利用消息队列可以解耦生产者和消费者。多个生产者可以向同一个消息队列发送消息;但是,一个消息在被一个消息者处理的时候,这个消息在队列上会被锁住或者被移除并

2022-05-13 16:00:25 229 1

原创 MyBatis-Plus 看这一篇就够

目录1.什么是 MyBatis-Plus2.特点3.MyBatis-Plus初步使用3.1导入依赖3.2 application.yml 配置3.3 主启动器开启mapper 扫描3.4 测试4.代码生成器使用4.1导入依赖4.2 编写代码生成策略5 注解5.1 @TableName5.2 @TableId​5.3@TableField6 自动填充6.1 实体类添加注解6.2 编写处理类7. 乐观锁8.分...

2022-03-16 18:37:02 404

原创 etcd跨主机集群通信

目录1.Flannel 简介1.1 Flannel特点2 环境搭建2.1 etcd 版本问题2.2 etcd中保存网络信息2.3 flannel安装与配置2.4 docker配置3.测试flannel跨主机通信 Docker默认的网络环境下,单台主机上的Docker容器可以通过docker0网桥直接通信,而不同主机上的Docker容器之间只能通过在主机上做端口映射进行通信。这种端口映射方式对很多集群应用来说极不方便。如果能让Docker容器之间直...

2022-03-02 17:09:49 679

原创 etcd 介绍与使用

目录1.etcd 简介2.Raft选举算法3. etcd 安装4. etcd基本使用1.etcd 简介etcd是一个高可用的分布式的键值对存储系统,常用做配置共享和服务发现,由CoreOS公司发起的一个开源项目,受到ZooKeeper与doozer启发而催生的项目,名称”etcd”源自两个想法,即Unix的”/etc”文件夹和”d”分布式系统。”/etc”文件夹是用于存储单个系统的配置数据的地方,而etcd用于存储大规模分布式的配置信息,etcd有如下特点:简单:基于..

2022-02-28 18:36:21 2600

原创 RabbitMQ常用Exchange详解

目录1.Exchange 介绍1.2 路由键(RoutingKey)1.3 绑定键(BindingKey)2.直连交换机:Direct exchange3.主题交换机:Topic4. 扇形交换机:Fanout exchange1.Exchange 介绍在RabbitMQ中,生产者发送消息不会直接将消息投递到队列中,而是先将消息投递到交换机中,在由交换机转发到具体的队列,队列再将消息以推送或者拉取方式给消费者进行消费1.2 路由键(RoutingKey)...

2022-02-25 19:13:48 7964 2

原创 Docker之nginx集群

目录1.nginx部署单个1.1 拉取nginx镜像1.2 创建nginx容器并且对nginx所需文件进行目录挂载1.3 nginx配置文件1.4 后端容器2.搭建nginx集群3.不同端口解决方案1.nginx部署单个1.1 拉取nginx镜像 docker pull nginx1.2 创建nginx容器并且对nginx所需文件进行目录挂载docker run -itd \--name mynginx \-v /myconf/nginx/co

2022-02-23 17:16:53 2703 1

原创 Sentinel 使用

1.什么是SentinelSentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维护期,不再提供新功能,Sentinel是一个不错的替代方案。通常情况,Hystrix采用线程池对服务的调用进行隔离,Sentinel才用了用户线程对接口进行隔离,二者相比,Hystrxi是服务级别的隔离,Sentinel提供了接口级别的隔离,Sentinel隔离级别更加

2022-02-21 20:37:08 216

原创 Docker 网络配置

1.Docker 网络配置当你安装了docker,它会自动创建3个网络可以使用 docker network ls 命令来查看1.1 bridge模式当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连 接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡

2022-02-21 17:09:20 1850

原创 Docker 数据卷 与 Dockerfile

1.数据卷1.1 数据卷特性为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合 文件系统,而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷 可以在容器之间共享和重用 对 数据卷 的修改会立马生效 对 数据卷 的更新,不会影响镜像 数据卷 默认会一直存在,即使容器被删除1.2 创建数据卷docker volume create m

2022-02-20 16:37:44 101

原创 Docker安装与使用

1.微服务的部署策略部署单体应用意味着运行大型应用的多个相同副本,通常提供若干台(N)服务器(物理机或虚拟 机),在每台服务器上运行若干个(M)应用实例。部署单体应用并不总是简单明了,但还是比部署微 服务应用简单。微服务应用由几十甚至数百个服务组成。服务用不同的语言和框架写成,每个都是一个小应用,包括特 定的部署、资源、扩展和监控需求,例如,根据服务需求运行若干数量的服务实例。此外,每个服务实例必须配套提供适当的 CPU、内存 和 I/O 资源。更具挑战性的是,尽管如此复杂,部 署服务还必须快速、可

2022-02-19 18:21:25 1000

原创 SpringCloud之 nacos和Feign集成

目录1父工程依赖导入2 创建提供者模块provider2.1 继承父工程依赖2.2 application.yml2.3编写Controller3.创建消费者模块consumer3.1 继承父工程依赖3.2 application.yml3.3 消费者主启动类3.4 消费者service3.5controller4访问1父工程依赖导入<properties> <project.build.sourceEnc...

2022-02-18 20:05:00 908

原创 SpringCloud简介

1.微服务1.1 微服务是什么是一种架构风格,将业务拆分成模块,部署在不同的主机上提供结构,提供服务,通过http的方式通信。1.2 单体应用程序将一个应用的所有应用服务都封在一个应用中,无论什么系统,都把数据库访问,web访问,各个功能放在一 个war包内.。好处:架构简单,项目开发成本低。 所有项目模块部署到一起,对于小型项目来说,维护方便。缺点:所有模块耦合在一起,虽然对于小型项目来说,维护方便.但是,对于大型项目来说,却是不易开发 和维护的。 项目的各模块之前过于耦

2022-02-17 15:02:09 284

原创 quartz之动态定时器实现

1.基础环境配置1.1quartz调度框架内置表进入quartz的官网http://www.quartz-scheduler.org/,点击Downloads。在数据库运行quartz目录\docs\dbTables下的 tables_mysql.sql1.2pom依赖<dependencies> <dependency> <groupId>org.springframework.boot</grou..

2022-02-14 08:44:55 741

原创 Quartz详解与使用

目录1.Quartz介绍2.Quartz的触发器2.1五种类型的Trigger(定时器)3.储存方式3.2 cron表达式4.Quartz创建定时任务4.1导入Quartz依赖4.2job任务类4.3 具体业务实现5 Quartz 核心类详解5.1 Scheduler 调度器5.2 Job 定时任务5.3 Trigger 触发器1.Quartz介绍任务调度框架“Quartz”是OpenSymphony开源组织在Job scheduling...

2022-02-13 16:47:15 5433

原创 SpringBoot自定义启动器

1.starter的作用1.1 starter的理念starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。 需要注意的是 不同的starter是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异, 例如jpa的starter和Redis的starter可能实现就不一样,这是因为starter的本质在于synthesize, 这是一 层在逻辑层面的抽象,也许这种理念有点类似于Docker,因为它们都是在做一个“包装”的操作。1.2 starter的实现虽然

2022-02-12 20:25:09 266

原创 SpringBoot整合Druid、Redis

1.整合Druid1.1Druid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。1.2添加上 Druid 数据源依赖 <dependency> <groupId>

2022-02-08 20:06:28 1373 2

原创 vue图片验证码

先看效果1.验证码组件<template> <div class="s-canvas"> <canvas id="s-canvas" :width="contentWidth" :height="contentHeight" @click="Refresh"></canvas> </div></template><script>export default { name: 'SIden

2022-02-08 11:27:13 595

原创 SpringBoot之SSM开发

1.pom依赖导入1.1 集成web容器(Spring webMVC) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>1.2集成mybatis(mybatis不是官方的启动器) <dependency

2022-02-08 08:31:33 106

原创 自定义注解详细介绍

1.注解介绍注解是一种元数据形式,即注解是属于java的一种数据类型,和类、接口、数组、枚举类似。 注解用来修饰,类、方法、变量、参数、包。 注解不会对所修饰的代码产生直接的影响。2.怎样自定义注解定义注解 使用注解(将注解打在需要的代码上) 解析注解(检测到标记并进行特殊操作)2.1 注解基本语法注解类型声明注解在Java中,与类、接口、枚举类似,因此其声明语法基本一致,只是所使用的关键字有所不同@interface在底层实现上,所有定义的注解都会自动继承java.lang.a

2022-01-18 23:55:50 1318

原创 Shiro认证与盐加密

目录1.Shiro认证1.1导入pom依赖1.2web.xml添加配置1.3 认证2.盐加密前言:本文在mybatis与spring集成基础上进行shiro认证开发1.Shiro认证1.1导入pom依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <ver..

2021-12-22 09:22:43 93

原创 Shiro入门篇

1.Shiro简介1. 什么是shiroshiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。2. 在应用程序角度来观察如何使用S...

2021-12-21 16:37:06 219

原创 SpringMVC文件上传

1.SpringMVC文件上传pom依赖<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version></dependency>在前端页面添加多功能表单<form ...

2021-12-19 15:43:58 50

原创 Mybatis关联关系

1.一对多关联关系首先先用逆向生成工具生成t_hibernate_order、t_hibernate_order_item实体类package com.wyy.Vo;import com.wyy.model.Order;import com.wyy.model.Order_item;import java.util.ArrayList;import java.util.List;/** * 订单 */public class OrderVo extends Order {

2021-12-18 10:45:19 528

原创 Mybatis动态sql与分页

1.Mybatis动态sql1.1ifif标签解决了修改需要传递所有列段的问题,以往所用的修改不传的值就为空,mybatis的if解决了它的漏洞,效率更好,单方面讲加了if条件的好一些.<update id="updateByPrimaryKeySelective" parameterType="com.wyy.model.Book" > update t_mvc_book <set > <if test="bname != null"

2021-12-17 09:53:00 960

原创 Mybatis整合ehcache、redis实现二级缓存

本文在mybatis与spring集成的基础上进行开发实现Mybatis二级缓存。1.Mybatis整合ehcache1.1pom依赖在原有的pom依赖上添加ehcache相关依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>

2021-12-16 16:02:10 113

原创 mybatis与spring集成

1.Mybatis与spring集成1.1.导入pom依赖使用mybatis-generator插件,pom文件添加支持<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.

2021-12-14 16:11:40 695

原创 Linux安装jdk,mysql,Tomcat,nginx 一篇就够了

1.Linux安装jdk1.1检测是否有jdkjava -version因为某些Centos系统会自带jdk (OpenJdk)卸载OpenJdkyum remove *openjdk*1.2下载Linux1.8jdk下载地址:Java Downloads | Oracle1.3.安装jdk将jdk压缩文件丢到/usr/local下,解压文件tar -zxvf xxxxxx1.4配置环境变量解压完成之后进行环境变量配置,L...

2021-12-12 22:01:39 11742 4

原创 Linux安裝MySQL8服务启动以及密码配置错误详解

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.mysql 8.0...

2021-12-12 21:30:28 1211

原创 JWT简介以及应用

1.JWT 出现原因及工作原理1.1 JWT是什么JSON Web Token (JWT),它是目前最流行的跨域身份验证解决方案1.2为什么使用JWT JWT的精髓在于:“去中心化”,数据是保存在客户端的。1.3JWT工作原理在服务器身份验证之后,将生成一个JSON对象并将其发送回用户,示例如下:{"UserName": "Chongchong","Role": "Admin","Expire": "2018-08-08 20:15:56"} 之后,当用户与服务器通信...

2021-12-01 11:43:56 824

原创 Vuex详解

目录1.变量传值的演变形式2.vuex中的各个js文件的用途2.1.vuex组件3.Vuex使用3.1 vuex安装3.2创建store模块,分别维护state/actions/mutations/getters3.3在main.js中导入并使用store实例4.Vuex取值5.Vuex存值5.1mutations同步传值6.Vuex异步加载(action.js)7.Action与 mutation区别8.vuex与后台交互1.变量传值的演变...

2021-11-15 20:29:23 1211

原创 SPA项目开发之CRUD+表单验证

1.表单验证<el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm"> <el-form-item label="文章标题" prop="title"> <el-input size="small" v-model="editForm.title" auto-complete="off" placeholder="请输入文章标题"></el-inp

2021-11-12 10:14:31 764

原创 SPA项目开发之动态树+分页数据表格

目录1.Element UI动态树2.数据表格3.分页与条件查询1.Element UI动态树向后台发送请求,获取数据,然后渲染到页面中<template> <el-menu router :default-active="$route.path" default-active="2" class="el-menu-vertical-demo" background-color="#334157" text-color="#fff" active-t...

2021-11-11 16:32:29 699

原创 SPA项目开发之首页导航+左侧菜单

1.mock.js模拟响应ajax请求1.1.mock.js介绍 Mock.js是一个模拟数据的生成器,用来帮助前端调试开发、进行前后端的原型分离以及用来提高自动化测试效率。1.2.Mock.js使用步骤1.2.1.安装mockjs依赖npm install mockjs -D1.2.2配置开发环境及生产环境dev.env'use strict'const merge = require('webpack-merge')const prodEnv = ...

2021-11-09 22:37:51 598

原创 SPA项目之登录注册

1.安装开发模块在当前项目所在位置执行以下四条命令npm install element-ui-S element-ui依赖npm install axios -S 类似于Ajaxnpm install qs -S get/post请求有关npm install vue-axios -S ...

2021-11-09 00:12:02 782

原创 CentOS镜像下载&安装配置&Linux常用命令

目录1.linux centos7 镜像下载2.创建虚拟机3.正式安装CentOS 74.远程工具 Xshell 的使用 5.更换国内源6. 运行yum命令出现“Existing lock /var/run/yum.pid: another copy is running as pid...”解决方法​7.Linux常用命令1.linux centos7 镜像下载下载地址:http://mirrors.aliyun.com/centos/7/isos/x8...

2021-11-06 15:36:57 24765

空空如也

空空如也

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

TA关注的人

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