自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java多线程线程池原理剖析

文章目录Java线程池线程复用线程池概念线程池工作原理ThreadPoolExecutor原理源码原理拒绝策略任务阻塞队列如何实现线程复用newCachedThreadPoolJava线程池线程复用线程的创建和销毁,都是重量级工作,非常的消耗性能,高并发或者频繁的线程使用场景下对机器的要求很高,会造成性能瓶颈可以使用线程池优化线程的频繁使用场景,使线程达到重复使用而不销毁,原理类似数据库连接池,http连接池等…线程池概念在线程池中,当你需要使用线程时,可以从池子中随便拿一个空闲线程,当完成工作

2021-05-10 00:16:20 206

原创 微服务认证鉴权gateway+oauth2+security+jwt

文章目录本文认证鉴权思路方案一. 认证服务器1. 需要依赖2. 编写认证服务3. 安全配置4. 开放接口配置二. 资源服务器(此处可理解为鉴权服务)1. 需要依赖2. 编写鉴权管理器3. 编写资源服务3. 黑名单过滤器4. 异常处理5. JWT刷新方案6. 配置网关模块调用认证模块获取jwt加密公钥地址三. 配置完毕,开始测试1. 获取Token2. 刷新Token3. 携带Token访问资源4. 退出登录5. 退出登录后再次访问资源本文认证鉴权思路方案实现思路收到开源电商项目mall和youlai

2021-04-07 23:22:20 4013 13

原创 Activiti7流程结束监听事件中,抛出的异常无法被spring全局异常捕捉

*** 继承ProcessCompletedListenerDelegate,重写isFailOnException以达目的*/@Override。

2023-11-01 21:53:13 558

原创 k8s dashboard您的连接不是私密链接解决办法

k8s dashboard您的连接不是私密链接解决办法

2022-11-17 18:53:21 1005 2

原创 spring security oauth2 jwt过期时间不准原因分析以及解决办法

源码跟踪spring security oauth2框架中jwt过期时间不准的问题

2022-11-06 01:31:40 2939

原创 SSL证书自动生成并自动续期(解决泛域名续签问题)

ssl证书自动生成并自动续期

2022-10-08 17:17:37 2590

原创 UTC时间与RFC3339时间格式在java中的使用

UTC时间与RFC3339时间格式

2022-09-07 00:54:41 3822

原创 aqs源码分析

aqs源码分析

2022-08-22 00:03:26 91

原创 Redisson分布式锁原理源码跟踪

redisson实现分布式锁源码分析

2022-07-03 18:55:52 199

原创 重新认识mysql事务

重新认识mysql事务

2022-06-22 10:02:47 78

原创 mybatis执行过程,源码分析

mybatis执行过程源码分析

2022-06-22 09:55:35 142

原创 RocketMQ在SpringBoot中的使用

文章目录RocketMQ在SpringBoot中的使用业务痛点解决方案效果图集成RocketMQ寻找合适的版本添加依赖添加配置生产者消费者RocketMQ使用生产消息消费消息RocketMQ在SpringBoot中的使用业务痛点使用的每一个技术都是为了解决遇到的问题本次在项目中使用RocketMQ主要是因为:当用户在页面上准备导入数据的时候,由于用户的Excel的条数很多,>10000条,每一条数据都需要校验数完整性,比如导入sku,需要判断每一条sku对应填写的单位是否是系统中存在该单位等

2022-05-26 23:04:42 1476

原创 SpringBoot异步线程@Async的使用注意

文章目录SpringBoot异步线程@Async的使用注意一、创建线程池交给Spring管理二、异步线程的调用三、注意点SpringBoot异步线程@Async的使用注意当业务需要异步处理的时候(例如异步保存操作日志),我们不能简单的通过new Thread的方式来使用,这样子性能低,重复的创建Thread和回收Thread非常的占用资源,所以我们使用Java的线程池机制,来做到线程的回收利用,线程池的介绍详见我的另一篇文章:java多线程线程池原理剖析@Async的使用方式如下一、创建线程池交给S

2022-05-26 22:10:50 1012

原创 分布式事务框架seata1.4.2整合到SpringCloud Alibaba 2.x

spring cloud alibaba 2.x整合seata1.4.2

2022-04-28 15:17:16 1612

原创 springboot启动原理自动配置原理

文章目录1. SpringBoot自动加载原理首先看@SpringBootApplication注解@SpringBootConfiguration@[email protected]@Import({AutoConfigurationImportSelector.class})2.SpringApplication.run()创建SpringApplication实例run方法1. SpringBoot自动加载原

2022-03-08 22:10:23 233

原创 【随机头像】一个随机头像生成网站

https://joeschmoe.io/api/v1/random

2022-01-15 11:53:10 3268

原创 ip2region工具类

ip2region依赖ip2region.db文件,可以去作者的gitee/github项目的data包中去下载作者的gitee:https://gitee.com/lionsoul/ip2region作者的github:将db文件放在项目的resources下即可package top.sclf.common.core.util;import lombok.extern.slf4j.Slf4j;import org.lionsoul.ip2region.DataBlock;import

2021-05-12 00:14:59 387

原创 使用docker部署springboot项目+mysql+nginx+redis

文章目录常用命令部署方式介绍方式1:应用单独部署,再连接容器常用命令docker build -t 镜像名称[:版本] dockerfile位置如:docker build -t test-project ./查所有镜像 docker images删除镜像 docker rm 镜像id部署镜像为容器 docker run参数:-d 使容器后台运行-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用-i: 以交互模式运行容器,通常与 -t 同时使用;-it:以交

2021-04-26 23:46:58 845 3

转载 springboot封装redis订阅发布

转自:https://www.cnblogs.com/ywbmaster/p/13595837.html一:redis中发布订阅功能(http://www.redis.cn/commands.html#pubsub)PSUBSCRIBE pattern [pattern …]:订阅一个或者多个符合pattern格式的频道PUBLISH channel message:发布消息到chanel中PUBSUB subcommand [argument [argument …]]:查看订阅与发布系统状态P

2021-04-15 22:32:27 150

原创 mybatis拦截器添加额外参数

上一篇中讲了mybatis拦截器的实现这一篇扩展mybatis在拦截器中添加额外参数在mybatis的mapper.xml文件中,我们可以使用#{}或${}的方式获取到参数,这些参数都需要提前我们在mapper.java接口文件中通过参数的方式传入参数才能取到为了扩展参数,我们需要了解mybatis是怎么帮我们保管mapper.java中传入的参数的进入Executor.java接口查看query方法,可以看到第一个参数MappedStatement对象中有一个parameterMap字段,该字段是

2021-04-12 12:56:28 4830 5

原创 mybatis拦截器(一)

文章目录一、MyBatis拦截器介绍二、创建拦截器一、MyBatis拦截器介绍mybatis拦截器可以拦截如下4中类型Executor sql的内部执行器ParameterHandler 拦截参数的处理StatementHandler 拦截sql的构建ResultSetHandler 拦截结果的处理这4中不同类型的拦截器的拦截顺序为从上到下的顺序,即Executor -> ParameterHandler -> StatementHandler -> ResultSet

2021-04-12 11:50:05 1499

原创 Spring事件机制event

event

2021-04-10 14:05:46 76

原创 服务雪崩

服务雪崩什么叫服务雪崩,即由于一个服务影响到其他服务,从而这一整条服务链都处于未响应的状态的情况比如下单业务,首先在订单服务保存订单,其次仓库服务减少库存,当库存服务减少库存时,仓库服务发生bug或阻塞或宕机,由于服务于服务调用之间使用http完成,则订单服务会一直阻塞状态下等待仓库服务的响应,由于tomcat线程池中线程数量有限,当线程池中线程全被占用,并且都处于阻塞状态时,其他的访问无法正常连接至服务器像这种由于服务提供者的不可用引起的服务调用者不可用的情况称之为服务雪崩微服务中对于服务雪崩的解

2021-03-25 22:03:41 194

原创 nginx扩展记录

文章目录1. 控制nginx日志,关闭access日志2. 切割日志(手动执行shell的方式切割)3. 切割日志(定时切割)4. `nginx`使用`gzip`压缩'5. root与alias1. 控制nginx日志,关闭access日志http块下使用access_log nul;2. 切割日志(手动执行shell的方式切割)#!/bin/bash#定义日志的位置LOG_PATH="/var/log/nginx/"#编写一个时间的格式,此处是获取昨天的时间RECORD_TIME=$

2021-03-25 22:02:34 63

原创 使用certbot自动续签ssl证书

在certbot官网下载对应系统的certbot安装包安装完成在命令行执行certbot --help查看是否安装成功使用手动方式申请证书certbot certonly --preferred-challenges dns --manual -d *.xx.xx.net --server https://acme-v02.api.letsencrypt.org/directory–preferred-challenges dns: DNS认真菜支持泛域名–manual: 手动申请模式–d *.

2021-03-20 17:37:42 854

原创 java开发规范(持续更新)

该规范基于阿里开发规范和1024创新实验室团队的开发规范整合自己公司的规范整理而成文章目录一、编程规范1、项目命名规范2、`TODO/FIXME` 规范3、方法参数规范4、注释4.1、方法内逻辑注释4.2、方法注释5、状态型取值应使用枚举规范6、固定常量使用常量类7、所有mapper接口和service接口需要加上注释8、ThreadLocal在set()后需要在正确的时间remove()二、项目规范1、目录结构2、domain中的javabean规范1)javabean整体要求:2)model包下jav

2021-03-01 11:21:57 195

原创 spring中监听一个http请求的结束

@Componentpublic class HttpServletRequestEndListener implements ApplicationListener<ServletRequestHandledEvent> { @Override public void onApplicationEvent(ServletRequestHandledEvent event) { // do something... }}ApplicationListene

2021-03-01 11:05:24 818

原创 springboot多数据源整合flyway

springboot有默认的flyway版本,直接添加flyway的依赖// An highlighted blockvar foo = 'bar'; huhflyway的自动配置类FlywayAutoConfiguration会进行自动配置,读取配置文件spring.flyway下的配置,以对项目的唯一默认数据源进行数据库迁移操作整合多数据源,首先要先排除掉加载Flyway的自动配置类添加如下配置:``...

2021-01-12 00:01:16 990

原创 净菜加工系统后台集群部署方案落地实现

文章目录净菜加工系统后台集群部署前言集群部署带来的问题集群部署落地实现解决方案问题一:跨域问题二:Session共享问题三:分布式WebSocket方案落地跨域Session共享消息驱动WebSocket使用`Nginx`对后台服务负载均衡净菜加工系统后台集群部署前言为什么要使用集群部署当我们单机部署的时候,前端项目是打包在后台项目中的,通过Spring MVC来访问静态资源的形式来访问页面劣势一:使用Tomcat来作为静态资源的服务器,同时使用Tomcat来作为后台Servlet的容器

2020-09-07 20:41:52 150

原创 使用Nginx代理Websocket

在location下加上如下配置即可 # websocket 支持 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 调优配置:proxy_read_timeout如果不配置默认是60s,即60s如果没有数据交换则断开连接 proxy_read_timeout 600s;...

2020-08-26 09:01:48 141

原创 springboot动态多数据源切换,解决多数据源事务问题

文章目录1.业务场景2.主要思路3.核心抽象类AbstractRoutingDataSource分析4.开始编码5.踩坑A类坑B类坑B类解决方案1.业务场景通过分库实现不同租户的业务数据隔离,在笔者的公司是一个集团数据库作为一个master库,集团拥有众多的分公司,每一个分公司都有一个slave库,从而做到集团的数据和各个分公司的数据库的数据隔离2.主要思路项目默认使用加载集团master库(库中包含子公司信息表,存储了每一个分公司数据库的连接信息)来启动项目监听项目的启动,当项目启动时,读取m

2020-06-11 23:32:21 4025 8

原创 在java中调用命令行或终端连接数据库并执行操作数据库

java使用Process对象可以对命令行进行命令输入直接上代码private void createExternalSubCompanyDatabase(String host, Integer port, String jdbcUsername, String jdbcPassword, String databaseName) { boolean success = true; try { String command = mysqlPath + "/bin/mys

2020-05-10 11:17:10 1097

原创 java-批量更新优化

往往在我们的系统中会有一些批量更新的业务,我们公司现在的业务场景如下:有如下的excel需要导入更新食材名称食材价格猪肉20.61白菜1.06土豆4.57…省略10W条需要通过表格中的食材名称和系统做匹配,更新系统中的猪肉价格许多人的实现逻辑如下// list中保存表格中的行的对象List listfor(Object o : lis...

2020-04-19 21:52:46 1002

原创 SQL执行顺序

sql执行顺序常用关键字执行顺序from tablewheregroup byselecthavingorder by

2020-04-02 12:13:42 85

原创 java使用佳博打印机打印标签

文章目录1.前言1.1打印机型号及驱动说明1.2背景概要2.填坑3.上代码1.项目截图2.==中文打印需要注意两点==3.项目源码4.总结1.前言1.1打印机型号及驱动说明打印机型号:佳博GP-3120TU打印机标签纸规格:40mm*30mm 间隔2mm驱动:佳博条码打印机通用驱动TSCLIB.dll函数库支持:基本支持佳博的所有打印机1.2背景概要因为公司的业务需要,需要用jav...

2020-02-28 22:49:00 2655 7

原创 spring集成dubbo:spring+dubbo+zookeeper

文章目录Dubbo介绍执行流程使用1. 注册中心2. 创建父项目3. API模块4. Provider模块5. Comsumer模块测试1. 运行zookeeper2. 启动Provider模块3. 启动comsumer模块4. 输入地址Dubbo介绍  Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是阿里巴巴 SOA 服务化治理方案的核心框架,每天为...

2019-02-24 20:27:17 206

原创 Centos7安装ngnix与配置反向代理

一、目的使用Centos7搭建一个ngnix负载均衡服务器,为了测试负载均衡二、测试条件(测试环境)模拟两台服务器使用本机跑两个Web项目:tomcat:8080端口 tomcat:9090端口 Centos7作为nginx负载均衡服务器三、Centos7中nginx的搭建首先安装必要的库(nginx 中gzip模块需要 zlib 库,rewrite模块需要 p...

2019-01-12 11:39:15 180

原创 spring+spring MVC+hibernate整合

spring+spring MVC+hibernate先导入hibernate依赖包&lt;!-- hibernate配置--&gt;&lt;dependency&gt; &lt;groupId&gt;org.hibernate&lt;/groupId&gt; &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt; ...

2018-12-12 16:05:46 188 1

原创 JDK8新特性Lambda表达式的使用与介绍

JDK8——Lambda表达式开始之前我们先介绍一下“函数式编程”,什么是“函数式编程”,就是把一个方法或者一个函数作为参数传递,这在JDK8之前是做不到的,但是我们也许经常在 javascript 中看到这样的操作,如下:&lt;script type="text/javascript"&gt; window.onload = test(); function test() { ...

2018-12-12 11:02:15 214 1

原创 SpringMVC配置控制器作为首页

Spring MVC配置Controller跳转首页至此在我们使用Spring MVC构建Web项目的时候,也许你会通过web.xml中的&amp;amp;lt;welcome-file-list&amp;amp;gt;&amp;amp;lt;/welcome-file-list&amp;amp;gt;标签来配置首页例:&amp;amp;lt;welcome-file-list&amp;amp;gt; &amp;amp;lt;welco

2018-11-28 23:11:57 736 1

TSCLIB.dll使用说明.pdf

该文档为佳博打印机的TSCLIB.dll动态库的API文档描述,可与我的java使用佳博打印机的博文和TSCLIB.dll动态库一起查看效果更佳 博文链接https://blog.csdn.net/qq1010830256/article/details/104566074

2020-02-28

空空如也

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

TA关注的人

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