自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jenkins安装 Linux 更换镜像 安装插件

Jenkins 保姆级教程安装

2024-03-21 10:51:56 928

原创 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)

Neo4j的全文索引是基于Lucene实现的,但是Lucene默认情况下只提供了基于英文的分词器,下篇文章我们在讨论中文分词器(IK)的引用,本篇默认基于英文分词来做。我们前边文章就举例说明过,比如我要搜索苹果公司?首先我们要做的第一步在各个词条上创建全文索引,第二步我们根据苹果公司进行全文检索,把匹配度高的按顺序输出。下边我们一步步讲解怎么做。

2023-11-17 16:38:47 4215 3

原创 Oracle数据库 on duplicate key update功能

虽然 Oracle 数据库没有直接的 on duplicate key update 功能,但可以通过使用 MERGE 语句来实现相同的效果。MERGE 语句允许我们根据一组条件将 INSERT 和 UPDATE 操作合并到一条语句中,从而在插入数据时处理唯一约束冲突。通过将目标表和源表设置为同一表,我们可以在 MERGE 语句中模拟类似于 on duplicate key update 的行为。这样,我们可以更灵活地处理插入冲突,而不是简单地插入失败。

2023-11-07 09:34:34 847

原创 分布式集群下WebSocket Session共享解决方案

WebSocket Session共享解决方案

2023-07-04 10:41:36 3541

原创 SpringBoot 基于Redis的消息队列(基于发布订阅模型)

消息队列一般是有两种场景1、种是发布者订阅者模式2、种是生产者消费者模式生产者消费者模式 :生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有。发布者订阅者模式:发布者生产消息放到队列里,多个监听队列的消费者都会收到同一份消息;即正常情况下每个消费者收到的消息应该都是一样的。

2023-07-04 10:20:29 1433 4

原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(四) 表格中断问题

SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出

2023-06-30 14:39:18 744

原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(三) 给pdf加水印及水印图片、页眉页脚、页眉logo

SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出

2023-06-30 11:35:31 781

原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(二) 设置多字体, 以及中文不显示的问题

Thymeleaf企业级真实应用:将HTML界面数据转换为PDF输出

2023-06-29 15:38:21 866

原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(一)

Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出

2023-06-13 14:15:32 3104 1

原创 Java 远程debug,IDEA 远程 Debug 调试

好像感觉远程调试的用处也不是那么大,不能作为长期使用的调试工具。只能作为临时调试的手段。难保证本地代码和远程一致,而且你也很难判断是否一致通过远程调试发现了bug,但是又不能立即修复后继续调试,只能修复后部署后继续远程调试。

2023-05-09 11:41:20 967 1

原创 SpringBoot 整合WebService详解

WebService服务端是以远程接口为主的,在Java实现的WebService技术里主要依靠CXF开发框架,而这个CXF开发框架可以直接将接口发布成WebService。RS基于Restful风格,WS基于SOAP的XML协议RS比WS传输的数据更少,效率更高WS只能传输XML数据,RS可以传输XML,也可以传输JSON参考:此处讲解JAX-WS。

2023-04-24 14:11:02 9027 1

原创 Linux 设置swap

适用于没有开启swap的情况。

2023-04-19 11:15:10 2130

原创 MySQL服务器体系架构 执行原理

MySQL服务器体系架构

2023-02-17 13:34:21 533 1

原创 如何设计一个秒杀系统

高并发下如何设计秒杀系统

2023-02-14 11:42:54 564

原创 SpringBoot 全局异常处理用法及原理

全局异常处理用法及原理

2023-02-11 16:12:35 945 2

原创 Mongo Handler dispatch failed; nested exception is java.lang.StackOverflowError

mongo

2022-11-01 17:08:18 286

原创 linux安装MongoDB 包含arm架构linux

linux安装MongoDB

2022-08-04 15:56:09 2742

原创 SpringBoot集成Redisson实现延迟队列

Redis延迟队列 Redisson实现

2022-06-22 09:22:00 608

原创 Redis延迟队列手写实现

Redis延迟消息队列

2022-06-22 09:17:56 226

原创 JVM 线程上下文类加载器

线程上下问类加载器出现的原因Q: 越基础的类由越上层的加载器进行加载,如果基础类又要调用回用户的代码,那该怎么办?A: 解决方案:使用“线程上下文类加载器”为了解决这个问题,Java设计团队只好引入了一个不太优雅的设计:线程上下文类加载器(Thread Context ClassLoader)。这个类加载器可以通过java.lang.Thread类的setContextClassLoaser()方法进行设置,如果创建线程时还未设置,它将会从父线程中继承一个,如果在应用程序的全局范围内都没有设置过的

2022-05-24 12:06:59 1233 2

原创 Java NetConf 使用

1. 参考资料工具包GIT地址 : https://github.com/Juniper/netconf-java使用教程 : https://www.juniper.net/documentation/cn/zh/software/junos/netconf-java-toolkit/topics/task/netconf-java-toolkit-program-creating-and-executing.html2. 下载&编译工具包# 1. 下载git地址中的工具包到本地

2022-05-06 16:17:10 2326 1

原创 zerotier异地搭建组网

使用zerotier进行搭建组网, 免费版的话, 1个网络免费50个hosts, 以前是支持 100 个设备,后来降低到 70 个,如今是 50 个,不过对于普通用户来说还是非常够用的,因为“路由”只算一个。zerotier 官网处可以看到支持以下设备的使用https://my.zerotier.com/1、创建账号https://my.zerotier.com2、创建网络进入https://my.zerotier.com/network点击Create创建网络3、点击进入已创建的网络 .

2022-04-22 11:17:36 2731 7

原创 通过 zerotier 访问所在局域网的其他设备

通过 zerotier 访问所在局域网的其他设备zerotier 网段:10.10.10.0/24局域网网段:10.121.104.0/24 10.121.10.0/24 … …所在局域网的其中一个连接zerotier 网段设备(此处该设备系统为linux) 的两个网段中的 IP 分别是:10.10.10.15 和 10.121.10.110配置 zerotier 中的局域网网段的路由为设备的zerotier网段地址配置linux 开启 net.ipv4.ip_forwardecho 'n

2022-04-21 17:26:33 4527 1

原创 Java线程池详解最详细

线程池# 线程池的好处- 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。- 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?- 在Java中可以通过线程池来达到这样的效果。# - 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。- 第二:提

2022-04-06 09:33:24 321

原创 Access to system table ‘mysql.innodb_index_stats‘ is rejected

在命令行上使用 --ignore-table 参数来执行此操作:mysqldump -u root -p --all-databases --ignore-table=mysql.innodb_index_stats --ignore-table=mysql.innodb_table_stats > dump.sql

2022-04-05 10:41:41 3215

原创 The temporary upload location [/tmp/tomcat.6499037708040739657.7188/work/Tom

出现上述问题的原因在Linux 系统中,SpringBoot 应用服务在启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间无人问津的话,就可能导致上面这个问题。# 解决方案:# 1.临时的,直接重新启动项目就行,会重新建立临时文件夹# 2.在配置文件中配置tomcat的临.

2022-01-25 17:08:01 761

原创 SpringBoot整合Redisson分布式锁并实现AOP使用

SpringBoot整合Redisson的AOP注解实现, 使用注解加锁, 简化操作Redisson官网: https://redisson.org/Redisson+AOP实现1. SpringBoot导包具体版本对应可以参考官网连接 https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter此处我使用的2.2.5的版本 <properties> <java

2022-01-07 17:31:45 786

原创 MybatisPlus下开启二级缓存

MybatisPlus下二级缓存参考官网 https://baomidou.com/pages/f84a74/#mapper-%E5%B1%82%E4%BA%8C%E7%BA%A7%E7%BC%93%E5%AD%98%E9%97%AE%E9%A2%98# 官网# mapper 层二级缓存问题- 我们建议缓存放到 service 层,你可以自定义自己的 BaseServiceImpl 重写注解父类方法,继承自己的实现。# mapper 层二级缓存刷新问题- 如果你按照 mybatis 的方式

2021-12-23 17:05:56 1099

原创 Java注解动态解析获取方法参数值

应用场景当记录日志时, 不仅是需要文字的描述, 而且要动态获取数据, 拼接到文字上比如: 创建用户操作 应该要写成 ==> 创建了用户: #{user.username}其中#{user.username} 就应该从形参中去获取那么就涉及到了 在注解中动态解析形参中的值# 1. 使用方式- 提供resolverContent方法进行解析内容- 比如解析 String contextEL = "用户名:+#{user.username}+,用户密码:+#{user.password

2021-09-02 16:00:07 8107 5

原创 no available service ‘default‘ found, please make sure registry config correct

该问题是由于maven依赖问题导致的查看项目中的依赖是不是老版本的seata1.1.0一般微服务都会继承commons的依赖实际使用得知: commons中做了排除,继承他的子依赖中并不会排除

2021-07-30 11:34:33 486

原创 SpringBoot + Redis分布式缓存

mybatis分布式缓存(mybatis+redis)Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 Redis),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。Spring Cache 具备相当的好的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 c

2021-07-06 11:53:06 181

原创 SpringBoot读取自定义的Properties

该配置文件, 会在jar包部署目录所在路径SpringBoot本身的配置文件确定是开发环境还是jar包环境, 读取不一样的绝对路径位置# 公共配置文件路径 csmpcommon-config: active: dev # dev代表开发环境 prod代表jar部署环境 relativepath: csmp/initSystem.properties # 公共配置文件相对路径Properties配置文件# 外部管理网络名称network.drainage.externalMana.

2021-06-29 17:21:29 206

原创 mybatis分布式缓存(mybatis+redis) (三)

接上一篇缓存的优化策略对放入redis中key进行优化:key的长度不能太长1092679493:-364050362:com.wd.dao.UserDao.findAll:0:2147483647:select t_user.id, t_user.name, t_user.age,t_user.bir from t_user:SqlSessionFactoryBean尽可能将key设计的简短一些引入算法: MD5处理加密MD5算法特点:1、一切文件字符串等经过md5处理之后 都会生成

2021-06-23 11:07:38 254

原创 mybatis分布式缓存(mybatis+redis) (二)

接上一篇问题存在:缓存的存储是基于命名空间的,目前所做到的只适用于单表查询下的缓存,假如目前有两个表,在其中一个mapperxml(命名空间)下进行关联数据查询,那么缓存在Redis中是存在于两个key下的,如果一方做了更新,那么另一方缓存的数据是不会清空的(因为是两个命名空间互不影响),就有可能不能够保证是最新的数据。1、如果项目中表查询之间没有任何关联查询使用现在的这种缓存方式没有任何问题,否则有些表(命名空间)的数据删除了,不会影响到已经缓存的关联查询的数据2、现有的缓存方式在表连接查询过

2021-06-22 10:35:48 147

原创 mybatis分布式缓存(mybatis+redis) (一)

利用Mybatis自身本地缓存结合redis 实现分布式缓存前提: 做好Mybatis的环境和Redis 的链接环境即可, 无特殊要求1、mybatis中应用级缓存<==>二级缓存 SqlSessionFactory 级别缓存 所有会话共享2、如何开启(二级缓存)加上标签: mapper.xml中的 —>本地缓存(此时只开启了本地的缓存, 若是集群部署则不起作用)3、查看Cache标签的缓存实现查看 ibatis包下面的 Cache 接口 ,

2021-06-21 15:42:45 352

原创 com.sun.mail.smtp.SMTPSendFailedException: 503 Error: need EHLO and AUTH first !

org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 503 Error: need EHLO and AUTH first !; message exception details (1) are:Failed message 1:com.sun.mail.smtp.SMTPSendFailedException: 503 Error: need

2021-05-20 15:17:44 2147 4

原创 springboot SpringCloud quartz 集群搭建

1. 基本概念Quartz(任务调度框架)核心的概念:scheduler任务调度、Job任务、Trigger触发器、JobDetail任务细节。scheduler任务调度:是最核心的概念,需要把JobDetail和Trigger注册到scheduler中,才可以执行。Job任务:其实Job是接口,其中只有一个execute方法;每一个业务任务 创建一个job不同的Job在定义jobname和jobgroup时不能相同Trigger触发器a)作用:它是来执行工作任务,在什么条件下触发

2021-05-12 13:57:38 460 2

原创 OpenFeign上传文件

在SpringCloud分布式微服务中, 建议单独抽出一个服务进行文件的上传等操作1. files 服务@RestController@Slf4jpublic class FileController { @PostMapping("/file/upload") public Map<String, Object> upload(@RequestPart("file") MultipartFile file) { Map<String, Obj.

2021-04-13 09:47:16 753

原创 Exception 和 RuntimeException区别

Exception 和 RuntimeException都是异常,他们有什么区别呢?概念Exception :受检查的异常,这种异常是强制我们catch或throw的异常。你遇到这种异常必须进行catch或throw,如果不处理,编译器会报错。比如:IOException。RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。RuntimeException也是继

2021-04-09 17:13:04 672

原创 SpringBoot集成WebSocket进行消息主动推送

SpringBoot集成WebSocket进行消息主动推送

2021-03-01 16:59:35 607 2

空空如也

空空如也

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

TA关注的人

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