自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 springboot 项目jar包后上传到 服务器目录

当我们项目上传文件事,大点项目会把文件上传到对象存储或是自己的文件服务器。小项目会存储到服务器上但又不能存储到项目当中,存储到项目当中每次更新项目时,上传的文件时文件对丢失,所以我们都会存储到项目jar外,服务器上的,这样文件就不会每次更新项目就丢失了。当然项目拦截器等都要放行也要放行,如不验证token等。对于jar包因为我们无法操作jar包内容,所以我们只能将文件存放在别的位置,与jar包同级的目录是一个不错的选择。此时可以上传但是通过路径我们无法访问文件。...

2022-07-16 10:07:54 691 1

原创 idea 实用 高效 插件 分享 记录

说明:自动部署工具说明:汉化说明:代码crud 模板说明: 在mapper接口方法和mapper XML文件之间来回切换的插件说明: idea激活工具说明: yapi生成工具说明:热部署工具说明: mybati打印拼接参数工具最好用的一个,安装上之后,在tool中打开MyBatis Log,就会在idea下方出现一个MyBatis Log界面,之后日志中出现的sql语句会自动出现在这里(只有窗口打开之后的sql);说明:yapi生成工具说明:安装完成后在右侧会有 RestServices 窗口,打开会显示

2022-07-01 16:46:16 354

原创 java开发中 防止重复提交的几种方案

对于重复提交的问题,主要由于重复点击或者网络重发请求, 我要先了解产生原因几种方式:对于重复提交的问题 主要涉及到时 问题,那么先说一下什么是幂等。幂等:F(F(X)) = F(X)多次运算结果一致;简单点说就是对于完全相同的操作,操作一次与操作多次的结果是一样的。在开发中,我们都会涉及到对数据库操作。例如:4). google cache 代码实现 注解方式 Single lockpom.xml 引入配置文件 .yml实现代码使用:5)redispom.xml 引入.yml文件 r

2022-07-01 16:08:41 8433 2

原创 订单超时 取消订单 的几种实现方案总结与对比

在开发中,往往会遇到一些关于延时任务的需求。例如:生成订单 30 分钟未支付,则自动取消;生成订单 60 秒后,给用户发短信。此处就涉及到 和 等问题。这里只说 方案 思路 和 优缺点,代码不做实现。........................

2022-06-24 14:42:00 2618

原创 Java序列化JSON时long型数值返回前端页面,会出现精度丢失的问题

超过17位的最后两位直接丢失,导致拿着丢失精度之后的Id再去后端查数据根本查不到。java中得long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值).在实体类相应字段,使用ToStringSerializer的注解,让系统序列化时,保留相关精度解决办法(二): 比较完美,强烈推荐使用使用全局配置,将转换时实现自动ToStringSerializer序列化...

2022-06-22 16:52:39 1458 2

原创 解决mysql函数group_concat长度限制

GROUP_CONCAT将某一字段的值按指定的字符进行累加,系统默认的分隔符是逗号,可以累加的字符长度为1024字节(默认1024)。可以对这些参数进行修改。GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉,你可以通过下面的语句获得: 作用范围 SESSION ,GLOBAL SELECT @@global.group_concat_max_len;   show variables like "group_concat_max_len";在数据库中设置 可以设置作用

2022-05-27 16:05:53 2643

原创 idea 常用 插件备份

常用 idea 插件备忘 备份

2022-05-17 16:56:55 1218

原创 用阿里canal 从 mysql同步到 es

最近开发要用到 mysql 数据同步到 es 。在搜索后定位到阿里开源的canal,其主要原理是canal伪装成MySQL的从库,接收binlog信息,再通过解析和映射同步到其他的存储中去。官方的文档已经比较详尽,整体流程参考QuickStart,Adapter-ES,也在网上搜索搭建步骤但不是很详细, 在此仅记录一下自己的具体操作步骤,和在搭建时候遇到可坑。搭建环境:ubuntu-20.04.3mysql-8.0.29canal-1.1.5elasticsearch-7.17.3kiban

2022-05-17 15:10:02 555

转载 Springboot2.0防止XSS攻击的几种方式

Springboot2.0防止XSS攻击的几种方式Springboot2.0防止XSS攻击的几种方式在平时做项目代码开发的时候,很容易忽视XSS攻击的防护,网上有很多自定义全局拦截器来实现XSS过滤,其实不需要这么麻烦,SpringBoot留有不少钩子(扩展点),据此我们可以巧妙地实现全局的XSS过滤防止XSS攻击,一般有两种做法:1. 转义使用工具类HtmlUtils实现2. 过滤将敏感标签去除jsoup实现了非常强大的clean敏感标签的功能转义 做法的三种实现:转义方法一:注册自定

2022-03-17 10:26:03 1493

原创 git仓库 初始化命令

命令行指令Git 全局设置git config --global user.name “xx”git config --global user.email xxx@xx.com"创建新版本库git clone git@code.aliyun.com:xx/xx.gitcd mydemotouch README.mdgit add README.mdgit commit -m “add README”git push -u origin master已存在的文件夹或 Git 仓库cd

2022-03-07 09:39:34 2924

原创 idea easyCode 插件 tk.mybatis+pagehelper 模板

简单粗暴 无需多说 上截图 上代码Result.java 返回工具类@Datapublic class Result<T> { private int code; private String msg; private T data; public Result(int code, String msg) { this.code = code; this.msg = msg; } public Result(int code, Strin

2022-01-26 16:55:42 736 1

原创 idea 实用 高效 插件

说明:自动部署工具说明:汉化说明:代码crud 模板说明: 在mapper接口方法和mapper XML文件之间来回切换的插件说明: idea激活工具说明: yapi生成工具说明:热部署工具说明: mybati打印拼接参数工具最好用的一个,安装上之后,在tool中打开MyBatis Log,就会在idea下方出现一个MyBatis Log界面,之后日志中出现的sql语句会自动出现在这里(只有窗口打开之后的sql);说明:yapi生成工具说明:安装完成后在右侧会有 RestServices 窗口,打开会显示

2022-01-20 18:37:15 651

原创 idea EasyCode 插件 的 mybatis 模板

idea EasyCode 的mybatis 模板

2022-01-20 18:02:04 731

原创 CentOS7.5+ docker安装jenkins

一、使用官方安装脚本自动安装docker1.安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun推荐:可以使用国内 daocloud 默认最新版 一键安装命令:curl -sSL https://get.daocloud.io/docker | sh启动 Docker。 sudo systemctl start docker查看版本docker -v2.卸载Dockersudo yum

2020-12-15 09:20:23 240

原创 SpringBoot使用profile结合maven实现多环境配置

Java项目多环境配置一、使用Maven方式比较正式分:本地环境(localhost)、开发环境(development) 、测试环境(test)、生产环境打包(production)。不过我个人喜欢分三类:本地环境(开发环境)(local)、测试环境(dev)、生产环境(prod)。在平常开发的过程中,我们的项目配置文件经常有有几套分别对应自己本地的环境、开发环境、测试环境、以及生产环境。因为在不同的环境中项目的相关配置也会有相关的不同,我们在不同的环境中部署就要手动修改为对应环境的配置,这样

2020-12-01 11:01:04 379

转载 SpringMVC - 运行流程图及原理分析

一、Spring MVC工作流程图图一图二图三二、Spring工作流程描述用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;Disp

2020-09-29 13:44:47 290

原创 JAVA 23种开发模式详解(代码举例)demo

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:二、设计模式的六大原则1、开闭原则(Open Close P

2020-09-29 13:22:48 4946 1

原创 java 设计模式 之 几种常见设计模式详解 demo

1.单例模式单例模式,它的定义就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式具备典型的3个特点:1、只有一个实例。 2、自我实例化。 3、提供全局访问点。因此当系统中只需要一个实例对象或者系统中只允许一个公共访问点,除了这个公共访问点外,不能通过其他访问点访问该实例时,可以使用单例模式。单例模式的主要优点就是节约系统资源、提高了系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了“单一职责原则”,同时也没有抽象类,所以扩展起

2020-09-29 10:40:11 1025

原创 JVM 优化经验总结

一、JVM架构图1. JVM总体概述JVM总体上是由类装载子系统(ClassLoader)、运行时数据区、执行引擎、内存回收这四个部分组成。其中我们最为关注的运行时数据区,也就是JVM的内存部分则是由方法区(Method Area)、JAVA堆(Heap)、虚拟机栈(Stack)、程序计数器、本地方法栈这几部分组成;除此以外,在概念中还有一个直接内存的概念,事实上这部分内存并不属于虚拟机规范中定义的内存区域,但是因为在JDK1.4+后新加的NIO类,以及JDK1.8+后的Metaspace的关系,所

2020-09-21 13:10:50 2582

原创 JVM指令手册

栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常量5压入栈lconst_0 将long类型常量0压入栈lconst_1 将long类型常量1压入栈fconst_0 将

2020-09-20 16:51:12 385

原创 Java 集合详解,常用集合类

一、 java集合类图1. 简单版:2. 图二:3. 图三上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。发现一个特点,上述所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove

2020-09-20 11:50:38 3468

原创 mysql数据实时同步到Elasticsearch

参考博客:使用 mypipe 与 go-mysql-elasticsearch 从 mysql数据实时同步到Elasticsearchhttps://www.jianshu.com/p/c3faa26bc221canal 数据同步 eshttps://www.cnblogs.com/dalaoyang/p/11069850.html

2020-09-18 16:35:18 140

原创 mq 解决 分布式事务 流程

基于RabbitMQ消息队列的分布式事务解决方案 :https://www.imooc.com/article/295377RocketMQ使用及分布式事务解决思路https://blog.csdn.net/d729332647/article/details/79324767

2020-09-18 11:16:28 261

原创 数据库中间件Mycat+SpringBoot完成分库分表

参考博客:https://www.cnblogs.com/fyc119/p/7529875.htmlhttps://blog.csdn.net/kk185800961/article/details/51147029

2020-09-18 10:59:55 80

转载 Mycat和Sharding-jdbc的区别、Mycat分片join、Mycat分页中的坑、Mycat注解、Catlet使用

一、Mycat和Sharding-jdbc的区别1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码Mycat(proxy中间件层):Sharding-jdbc(TDDL为代表的应用层):二、Mycat分片join在前面的文章Mysql系列四:数据库分库分表基础理论中,已经说过分库分表需要应对的技术难题有如下几个:1.)分布式全局唯一id2.)分片规则和策略3.)跨分片技术问题

2020-09-18 10:31:38 2114

原创 深入浅出 了解 JVM调优

深入浅出JVM调优基本概念:JVM把内存区分为堆区(heap)、栈区(stack)和方法区(method)。堆区:存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区:每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。栈分为3个部分

2020-09-17 10:04:23 148

转载 RabbitMQ的使用

简介RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMq 作用AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,

2020-09-16 15:49:51 338

原创 Spring boot 属性 配置列表 大全

# ===================================================================# COMMON SPRING BOOT PROPERTIES## This sample file is provided as a guideline. Do NOT copy it in its# entirety to your own application. ^^^# ===========================

2020-09-09 09:49:36 644

转载 SpringBoot 如何让自定义的属性 yml,properties配置文件有提示

我们在引用spring官方start库或者第三方start库时,在写配置文件时idea总是能精准的提示,并且鼠标可以点过去看具体属性或者类,而自己写的配置文件idea只会有“Cannot resolve configuration property …”这样的提示。我们现在也去配置我们自己的配置文件让idea知道这些配置文件是干什么的。一、需要的注解@ConfigurationProperties 配置属性文件,需要指定前缀 prefix@EnableConfigurationProperties

2020-09-09 09:31:46 5980

转载 HTTP状态码(响应码)

HTTP状态码(响应码)用来表明HTTP请求是否已经成功完成.HTTP响应类型一共分五大类:消息响应,成功响应,重定向,客户端错误,服务器端错误. 下表列出了所有HTTP状态码,以及他们各自所代表的含义:状态码原因短语代表含义HTTP 版本消息响应100Continue(继续)客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在请求完成后...

2020-08-27 10:30:38 831

原创 Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

搭建gateway 报错错误代码org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWe

2020-08-21 15:34:21 321

原创 SpringBoot集成Email 并配置发送功能

快速入门在Spring Boot的工程中的 pom.xml 中引入 spring-boot-starter-mail 依赖:<?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://mav

2020-08-11 11:06:18 654

原创 jdk工具生成tomcat搭建https服务

一、生成服务器站点证书1. 生成密钥仓库进入jdk的bin目录,如:D:\jdk1.6.0_16\bin执行:D:\jdk1.6.0_16\bin\keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore D:\keys\server.keystore -validity 36500参数说明:-genkey 生成秘钥。-keyalg 指定秘钥算法,这里指定RSA-keysize 指定秘钥长度, 默认1024位 ,这

2020-07-10 14:04:39 191

原创 Spring Boot认证:整合Jwt

背景Jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。优点简洁: 可以通过URL、POST参数或者在HTTP header发送,因为数据量小,传输速度也很快;自包含:负载中可以包含用户所需要的信息,避免了多次查询数据库;因为Token是以JSON加密的形式保存在客户端的,所以JWT是跨语言的,原则上任何web形式都支持;不需要在服务端保存会话信息,特别适用于分布式微服务。

2020-07-08 10:37:17 157

原创 SpringBoot 处理跨域请求

什么是跨域?由于安全原因,浏览器都遵循着同源原则,拦截了不同域名之间的请求。跨域请求,是指能让不同域名之间,可以相互发送请求。 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 比如说,域名A ( http://domaina.example ) 的某 Web 应用程序中通过< img>标签引入了域名B( http://domainb.foo ) 站点的某图片资源(http://domain

2020-07-08 09:48:54 159

原创 Alibaba Java 开发手册 1.5.0 华山版

前 言《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程.

2020-07-03 16:01:20 825

转载 Java检查字符串是否包含中文字符

一、实现方式一1、针对每个字符判断 public static boolean isChinese(String str) throws UnsupportedEncodingException { int len = str.length(); for(int i = 0;i < len;i ++) { String temp = URLEncoder.encode(str.charAt

2020-07-03 10:06:30 421

原创 js 身份证号 根据 国家标准 验证

/*根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。 出生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。 顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序

2020-06-30 11:17:52 188

转载 CentOs7.5下安装ffmpeg,详细安装说明

CentOs7.5下安装ffmpeg1.官网下载linux版本的ffmpeg源码包 ffmpeg-4.1.tar.xz(此步骤也可以使用git clone下载源码包,本质上是一样的 )2.使用xftp将源码包ffmpeg-4.1.tar.xz上传至linux主机(usr/local/ffmpeg目录;直接使用linux命令下载到linux也可以)cd /usr/local/mkdir ffmpeg #在usr/local目录下创建ffmpeg目录4.切换到ffmpeg-4.1目录、

2020-06-29 18:52:13 613

原创 spirngboot2.3.0 +Cache + Redis 实现注解缓存

1. 在pom.xml中 引入redis依赖 <!-- 缓存依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency><!-- redis --> <dependency

2020-06-04 11:24:10 174

叮咚,你有新的订单,请及时处理

叮咚,你有新的订单,请及时处理

2020-05-14

空空如也

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

TA关注的人

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