- 博客(120)
- 收藏
- 关注
原创 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)
Neo4j的全文索引是基于Lucene实现的,但是Lucene默认情况下只提供了基于英文的分词器,下篇文章我们在讨论中文分词器(IK)的引用,本篇默认基于英文分词来做。我们前边文章就举例说明过,比如我要搜索苹果公司?首先我们要做的第一步在各个词条上创建全文索引,第二步我们根据苹果公司进行全文检索,把匹配度高的按顺序输出。下边我们一步步讲解怎么做。
2023-11-17 16:38:47
5387
4
原创 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
1727
原创 SpringBoot 基于Redis的消息队列(基于发布订阅模型)
消息队列一般是有两种场景1、种是发布者订阅者模式2、种是生产者消费者模式生产者消费者模式 :生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有。发布者订阅者模式:发布者生产消息放到队列里,多个监听队列的消费者都会收到同一份消息;即正常情况下每个消费者收到的消息应该都是一样的。
2023-07-04 10:20:29
1739
4
原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(四) 表格中断问题
SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出
2023-06-30 14:39:18
993
原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(三) 给pdf加水印及水印图片、页眉页脚、页眉logo
SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出
2023-06-30 11:35:31
1114
原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(二) 设置多字体, 以及中文不显示的问题
Thymeleaf企业级真实应用:将HTML界面数据转换为PDF输出
2023-06-29 15:38:21
1149
原创 SpringBoot Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出(一)
Thymeleaf企业级真实应用:使用Flying Saucer结合iText5将HTML界面数据转换为PDF输出
2023-06-13 14:15:32
4198
1
原创 Java 远程debug,IDEA 远程 Debug 调试
好像感觉远程调试的用处也不是那么大,不能作为长期使用的调试工具。只能作为临时调试的手段。难保证本地代码和远程一致,而且你也很难判断是否一致通过远程调试发现了bug,但是又不能立即修复后继续调试,只能修复后部署后继续远程调试。
2023-05-09 11:41:20
1033
原创 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
10587
1
原创 Mongo Handler dispatch failed; nested exception is java.lang.StackOverflowError
mongo
2022-11-01 17:08:18
372
原创 JVM 线程上下文类加载器
线程上下问类加载器出现的原因Q: 越基础的类由越上层的加载器进行加载,如果基础类又要调用回用户的代码,那该怎么办?A: 解决方案:使用“线程上下文类加载器”为了解决这个问题,Java设计团队只好引入了一个不太优雅的设计:线程上下文类加载器(Thread Context ClassLoader)。这个类加载器可以通过java.lang.Thread类的setContextClassLoaser()方法进行设置,如果创建线程时还未设置,它将会从父线程中继承一个,如果在应用程序的全局范围内都没有设置过的
2022-05-24 12:06:59
1513
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
2952
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
3062
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
5435
1
原创 Java线程池详解最详细
线程池# 线程池的好处- 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。- 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?- 在Java中可以通过线程池来达到这样的效果。# - 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。- 第二:提
2022-04-06 09:33:24
351
原创 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
3828
原创 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
826
原创 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
973
原创 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
1230
原创 Java注解动态解析获取方法参数值
应用场景当记录日志时, 不仅是需要文字的描述, 而且要动态获取数据, 拼接到文字上比如: 创建用户操作 应该要写成 ==> 创建了用户: #{user.username}其中#{user.username} 就应该从形参中去获取那么就涉及到了 在注解中动态解析形参中的值# 1. 使用方式- 提供resolverContent方法进行解析内容- 比如解析 String contextEL = "用户名:+#{user.username}+,用户密码:+#{user.password
2021-09-02 16:00:07
9085
5
原创 no available service ‘default‘ found, please make sure registry config correct
该问题是由于maven依赖问题导致的查看项目中的依赖是不是老版本的seata1.1.0一般微服务都会继承commons的依赖实际使用得知: commons中做了排除,继承他的子依赖中并不会排除
2021-07-30 11:34:33
694
原创 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
243
原创 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
261
原创 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
306
原创 mybatis分布式缓存(mybatis+redis) (二)
接上一篇问题存在:缓存的存储是基于命名空间的,目前所做到的只适用于单表查询下的缓存,假如目前有两个表,在其中一个mapperxml(命名空间)下进行关联数据查询,那么缓存在Redis中是存在于两个key下的,如果一方做了更新,那么另一方缓存的数据是不会清空的(因为是两个命名空间互不影响),就有可能不能够保证是最新的数据。1、如果项目中表查询之间没有任何关联查询使用现在的这种缓存方式没有任何问题,否则有些表(命名空间)的数据删除了,不会影响到已经缓存的关联查询的数据2、现有的缓存方式在表连接查询过
2021-06-22 10:35:48
206
原创 mybatis分布式缓存(mybatis+redis) (一)
利用Mybatis自身本地缓存结合redis 实现分布式缓存前提: 做好Mybatis的环境和Redis 的链接环境即可, 无特殊要求1、mybatis中应用级缓存<==>二级缓存 SqlSessionFactory 级别缓存 所有会话共享2、如何开启(二级缓存)加上标签: mapper.xml中的 —>本地缓存(此时只开启了本地的缓存, 若是集群部署则不起作用)3、查看Cache标签的缓存实现查看 ibatis包下面的 Cache 接口 ,
2021-06-21 15:42:45
418
原创 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
2988
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
599
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
845
原创 Exception 和 RuntimeException区别
Exception 和 RuntimeException都是异常,他们有什么区别呢?概念Exception :受检查的异常,这种异常是强制我们catch或throw的异常。你遇到这种异常必须进行catch或throw,如果不处理,编译器会报错。比如:IOException。RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。RuntimeException也是继
2021-04-09 17:13:04
773
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人