自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 资源 (2)
  • 收藏
  • 关注

原创 seata升级1.1.0后遇到io.seata.common.exception.ShouldNeverHappenException

我们这一节主要讲的是seata升级后的主要修改,至于seata的基本部署可以参考我之前的随笔。可以在yml配置file.conf和registry.conf。

2023-09-04 19:28:45 925

转载 Mybatis @Param用和不用的区别

(1)不加@Param注解,可以写 param1、param2 …(2)加了@param之后,xml中就可以直接输入参数了,但是经测试写param1、param2 …这种的参数也没问题,不过最好保持参数一致。参考文章:mybatis 参数处理,单个参数,多个参数_mybatis 单个参数_f45056231p的博客-CSDN博客。2、数组作为参数,不加@Param的话,标签内的collection必须为array。(1)加@Param,test和#{}中获取方式是对象.属性,因为绑定的是对象。

2023-09-04 12:51:36 574

原创 Sentinel配置的blockHandler方法不生效

③也就是我犯下的错误,一定要注意是上面那个才是Sentinel的,下面的是sun公司的…①首先配置流控的资源名跟@SentinelResource中的Value配置的一定要一直且唯一。②其次blockhandler后面的方法一定要跟下面指定的方法名称是一样的。改为BlockException e 搞定。

2023-09-01 12:30:08 1068

转载 @Transactional 事务方法内互调用与生效场景总结

版权声明:本文为CSDN博主「浮生若梦l」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

2023-08-15 18:23:56 2033 3

原创 RocketMQ消费者可以手动消费但无法主动消费问题,或生成者发送超时

在RocketMQ独享实例中支持IPv4和IPv6双栈,主要是通过在网络层面上同时支持IPv4和IPv6协议栈来实现的。RocketMQ的Broker端、Namesrv端和客户端都需要支持IPv4和IPv6协议,以便能够同时监听IPv4和IPv6地址,并使用相应的协议栈进行通信。在Broker端,我们需要在配置文件中指定支持的网络类型为“IPv4 And IPv6”,来监听IPv4和IPv6地址。在客户端,我们需要在代码中显式指定连接的IPv4/IPv6地址信息,以确保能够使用正确的协议栈进行通信。

2023-08-14 21:35:29 1361

原创 rocketMq启动broker报错找不到或无法加载主类 Files\Java\jdk1.8.0_171\lib\dt.jar;C:\Program]

假如弹出提示框提示‘错误: 找不到或无法加载主类 xxxxxx’。

2023-08-13 20:54:28 1084

转载 IDEA 无法显示 Services,Run Dashboard 的解决方法

IDEA 无法显示 Run Dashboard 的解决方法。

2023-07-27 21:28:55 379

转载 扩展Ribbon支持Nacos权重的三种方式

Nacos支持权重配置,这是个比较实用的功能,例如:性能差的机器权重设低,性能好的机器权重设高,让请求优先打到性能高的机器上去;某个实例出现异常时,把权重设低,排查问题,问题排查完再把权重恢复;想要下线某个实例时,可先将该实例的权重设为0,这样流量就不会打到该实例上了——此时再去关停该实例,这样就能实现优雅下线啦。当然这是为Nacos量身定制的优雅下线方案——Spring Cloud中,要想实现优雅下线还有很多姿势,详见:《实用技巧:Spring Cloud中,如何优雅下线微服务?

2023-07-23 21:39:29 233

原创 Github官网进不去怎么办?Github无法访问怎么办?

win10 hosts位置:C:\Windows\System32\drivers\etc。当你完成以上四个步骤之后,基本上无论你在哪里,应该都可以进入GitHub官网了。执行 ipconfig /flushdns。完成,再访问github.com就很快了。打开hosts文件,可能需要管理员权限。以谷歌浏览器为例:打开谷歌浏览器,输入。如果再不行,尝试删下代理。

2023-06-16 18:19:47 29623 26

原创 浅谈集群,分布式和微服务的区别

是把一个业务中的各种功能模块进行拆分,给不同的服务去处理,每个服务只处理一个功能模块,该服务可以是单个服务器也可以是多个服务器集群,每个服务之间都是低耦合的.微服务是一种架构风格.微服务是系统架构上的一种设计风格,主旨是将一个原本独立的系统拆分成对各小型的服务,这些小型服务都可以独自在进程中运行,服务之间通过基于HTTP的RESTFUL API进行通信协助。分布式上的节点都能看作是一个集群。分布式,是将一个巨大的系统划分成多个小模块,这点跟微服务是一样的,都是将系统进行拆分,部署到不同的机器上。

2023-06-09 21:15:17 1204

原创 Comparator和Comparable的区别以及Collections.sort排序原理

Comparable和Comparator都是两个接口,接口都可以用来实现集合中元素的比较、排序,Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代码嵌入自身类中,而Comparator既可以嵌入到自身类中,也可以在一个独立的类中实现比较。

2023-02-20 07:35:56 566 1

原创 linux中cp -a和cp -r的区别

linux中“cp-a”和“cp-r”的区别是:“cp-a”命令复制的数据会保留元数据的时间戳和文件属性等信息,而“cp-r”命令复制的数据会使用新的时间戳等信息。

2022-10-25 17:26:54 8968

原创 Java多线程实现的四种方式

如上所示,继承Thread类,通过重写run()方法定义了一个新的线程类MyThread,其中run()方法的方法体代表了线程需要完成的任务,称之为线程执行体。当创建此线程类对象时一个新的线程得以创建,并进入到线程新建状态。首先,我们发现,在实现Callable接口中,此时不再是run()方法了,而是call()方法,此call()方法作为线程执行体,同时还具有返回值!创建Runnable实现类的实例,并以此实例作为Thread类的target来创建Thread对象,该Thread对象才是真正的线程对象。

2022-10-03 10:53:50 266

原创 JAVA面试常考

java的基础知识点,主要围绕在集合类和多线程等:ArrayList、LinkedList、HashSet、HashpMap的数据结果,以及如何扩容、以及ConcurrentHashMap相关的多线程安全等。Redis:作为分布式缓存的主力,基本也是BAT每次必考,重点是Redis的数据结构、内存、算法、持久化,以及与别的缓存memcached的优劣势。最好能提前了解深入一个类似秒杀这样的项目,如果面试官问到类似的项目,你能把设计思路讲出来,这对你的面试结果是很大的加分项。9.JVM内存分布/内存结构?

2022-09-03 17:25:46 208

原创 List转Java(基本数据类型)数组简述

List转Java(基本数据类型)数组简述,用户提供一个目标对象的泛型,在数组转换后,会返回一个指定类型的数组,不存在类型转换错误。toArray()无参,该方法不能指定转换数组的类型,返回值只能是Object()数组,所以得到返回值后往往需要做类型转换,将Object[]转换为我们需要的类型。例如Integer[] res = (Integer[])list.toArray(),如果将类型强转为整数数组,该代码能通过语法检查,但是在运行时会报类型转换错误,说明Object()不能简单地转换为其他类型的数组

2022-08-28 21:26:38 2015

原创 try、catch中finally和return执行顺序以及finally对变量操作对变量和结果的影响

try、catch中finally和return执行顺序

2022-08-05 16:33:44 677

原创 Bootstrap的下拉菜单dropdown失效

运用了bootstrap-table的分页后,点击分页,无反应,F12展示console控制台报Bootstrap’sdropdownsrequirePopper.js异常这句报错,初步判断就是确实了popper.js包,于是我点进去看了看bootstrap的javascript代码,确实需要导入popper.js。...

2022-07-25 16:22:57 2097

原创 解决WINDOS文件夹需要管理员权限无法删除,高级安全设置无法更改所者权限,点击变灰色

前言安装某软件后无法卸载,用360强力卸载也不行,想直接删除文件所在的目录也不行,显示必须提供administrator权限,然后想更改所有者,选项是灰色,无法更改。解决方法1.搜索栏输入【CMD】找到 【命令提示符】,右击【以管理员身份打开】2.在【命令提示符】中输入如下命令后回车:net user administrator /active:yes3.重启电脑4.再试一下修改相关文件,看看效果 成功弹出修改窗口更改为带管理员权限的本人登陆用户,然后删除文件夹即可如果这篇

2022-05-18 23:44:34 9550 2

原创 喵喵机打印机各系列通过USB数据线连接电脑打印

前言楼主买这个,其实是为了日常打印一下便贴,或者打印一下需要背诵的东西,打印一些创意。一开始买的是P3,发现不支持电脑打印,本人又懒得连手机打印,所以换成C1S。各机型对比从上面可以看到,D1,P3和P3L是不支持连接P3端的,后面我以C1S为例子进行描述。简单说说win打印机驱动,建议在官网下载。PC简易排版软件喵宝科技开发了win打印机驱动和一个采用富文本编辑器的PC简易排版软件,通过连接USB数据线,能够使得PC操作系统直接识别喵喵机成为一台打印机而不是串口也不是其他乱七八糟的设

2022-05-04 13:14:03 7978 1

原创 ApplicationContextUtil手动注入的Spring Bean,解决new对象的无法调用@Autowired注入的Bean

前言我发现当前类含有@Autowired注入Spring Bean的成员对象时候,则当前类必须也是Spring Bean才能调用它,也就是说该类必须写上注解@Component、@Configuration加入Spring Bean管理该类。然后运用时候通过@Resource或者@Autowired来注入Bean,这样才能调用该类的某bean成员对象的方法,不能用new xxx()来获得对象,这种方式获得的对象无法调用@Autowired注入的Bean成员对象的方法。例子@Componentpu

2022-05-04 01:52:32 2222

原创 springboot2.0+mybatis整合shiro+redis

前言:有人说encache就够了,默认的就好了,为什么要写redis,这里我先说说ehcache和redis区别。ehcache直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。如果是单个应用或者对缓存访问要求很高的应用,用ehcache。如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。引入依赖 <de

2022-05-03 23:27:46 1110

原创 用over()函数追加字段解决报错ORA-00937:不是单组分组函数

前言:用存储函数做报表时候,打算把count(*),总数作为字段追加上去,然后发现报错。百度了一堆,发现除单独使用分组函数,还有就是用gourp by,可是如果用了group by就不能追加总数的数量作为字段。尝试了一下over函数,然后结果666。现象:SELECT EMP_NO,COUNT(EMP_NO) FROM EMP报错:[Error] Execution (7: 18): ORA-00937: 不是单组分组函数解决:运用分析函数带有一个开窗函数over()over()SELE

2022-04-28 14:55:28 737

原创 SpringBoot2.0+Mybatis整合token+redis(每一次请求触发redis为token续期)

前言token的灵活使用是大家都有所了解的,但是如果指定了token的失效时间过短的话,会造成用户的使用体验大打折扣。假如设定了两小时,两小时内无论做什么动作,时间一到就会失效重新登录。这样太麻烦了,有没有可以让两小时内一旦点击内容或者做了某动作,就会让token的过期时间在那个时间点后面再延长两小时。答案是有的。现在我来说说如何实现。1.当登录成功时,redis添加key和value值均为token的值@RestControllerpublic class TestLoginControlle

2022-04-26 11:57:24 1631

原创 Error:Abnormal build process termination报错解决

前言:今天关闭防火脾启动java程序后报错。Error:Abnormal build process termination:“C:\Program Files\Java\jdk1.8.0_152\bin\java.exe” -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs=“” -Djdt.compiler.useSingleThread=true -Dpreload.project.path=D:/tangyuzhongshowtim

2022-04-07 15:49:50 6934

原创 springboot2.0+mybatis整合shiro

前言Shiro是Apache下的一个开源项目。shiro属于轻量级框架,相对于SpringSecurity简单的多,也没有SpringSecurity那么复杂。以下是我自己学习之后的记录。Shiro简介Apache Shiro 是 Java 的一个安全(权限)框架。 Shiro 能够很是容易的开发出足够好的应用,其不只能够用在 JavaSE 环境,也能够用在 JavaEE 环境。Shiro 能够完成:认证、受权、加密、会话管理、与Web 集成、缓存等。相对于SpringSecurity简单的多,也

2022-03-27 23:57:35 279

原创 SpringBoot2.0+Mybatis整合redis(SpringDataRedis)

前言对于刚接触Spring boot data-redis 的同学,与jedis的关系很容易搞混,这里对data-redis于jedis做一个简单的说明,并提供整合方式jedis和spring-boot-data-redis区别与关系jedis是redis的java客户端,通过它可以对redis进行操作。与之功能相似的还包括:Lettuce等。spring-data-redis它依赖jedis或Lettuce,实际上是对jedis这些客户端的封装,提供一套与客户端无关的api供应用使用,从

2022-03-27 23:43:37 978

原创 springboot2.0+mybatis整合freemarker(增删改查)

前言thymeleaf和freemarker比较,个人更倾向于freemarker这种模板引擎,两者的设计思路本就不同。springboot整合freemarker引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</arti

2022-03-27 23:20:54 865

原创 SpringBoot2.0+Mybatis整合Swagger3.0

前言在写项目的时候,想到swagger3已经更新了,于是想着尝鲜使用下,的确省去了很多配置。swagger3.0之前项目中整合Swagger都是直接通过依赖springfox-swagger、springfox-swagger-ui两个jar包来实现的,最近发现springfox 3.0.0版本已经有了自己的SpringBoot Starter,使用起来更契合SpringBoot项目,非常方便,推荐给大家。由于swagger2 只支持 1.X-2.5 ,按照趋势,可能会淘汰。swagger3.

2022-03-27 22:59:19 489

原创 HttpClient调用后台接口(用CloseableHttpClient发送get/post请求)

前言在没有页面的情况下来获取接口返回的数据(一般都是为JSON),我们可以通过一些工具模拟HTTP请求服务端模拟HTTP请求通过JAVA代码进行HTTP请求的发送引入依赖<dependency><groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version>&

2022-03-27 22:20:07 2740

原创 springboot2.6+Mybatis注解多数据源使用dynamic-datasource-spring-boot-starter为依赖

多数据源系列1、springboot2.6+Mybatis静态多数据源(集成JTA(Atomikos案例)实现分布式事务控制)2、springboot2.6+Mybatis动态多数据源AOP切换(AbstractRoutingDataSource)3、springboot2.6+Mybatis注解多数据源使用dynamic-datasource-spring-boot-starter为依赖说明前两篇博客介绍了用基本的方式做多数据源,可以应对一般的情况,但是遇到一些复杂的情况就需要扩展下功能了,比如

2022-03-27 21:33:50 3262

原创 springboot2.6+Mybatis动态多数据源AOP切换(AbstractRoutingDataSource)

多数据源系列1、springboot2.6+Mybatis静态多数据源(集成JTA(Atomikos案例)实现分布式事务控制)2、springboot2.6+Mybatis动态多数据源AOP切换(AbstractRoutingDataSource)3、springboot2.6+Mybatis注解多数据源使用dynamic-datasource-spring-boot-starter为依赖说明搭建多数据源有多种方式,上一篇博客介绍了一种最基本的方式搭建多数据源,就是把每个数据源配置了一个DataS

2022-03-27 21:08:27 2329 2

原创 springboot2.6+Mybatis静态多数据源(集成JTA(Atomikos案例)实现分布式事务控制)

多数据源系列1、springboot2.6+Mybatis静态多数据源(集成JTA(Atomikos案例)实现分布式事务控制)2、springboot2.6+Mybatis动态多数据源AOP切换3、springboot2.6+Mybatis注解多数据源使用dynamic-datasource-spring-boot-starter为依赖说明随着应用用户数量的增加,相应的并发请求的数量也会跟着不断增加,慢慢地,单个数据库已经没有办法满足我们频繁的数据库操作请求了。在某些场景下,我们可能会需要配置多

2022-03-27 20:05:27 2641

原创 centos和ubuntu上安装Docker

前言简单来说Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。docker的思想Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大

2022-03-22 10:17:06 1688

原创 java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别

qgetPath():返回的是定义时的路径,可能是相对路径,也可能是绝对路径,这个取决于定义时用的是相对路径还是绝对路径。如果定义时用的是绝对路径,那么使用getPath()返回的结果跟用getAbsolutePath()返回的结果一样getAbsolutePath():返回的是定义时的路径对应的相对路径,但不会处理“.”和“…”的情况getCanonicalPath():返回的是规范化的绝对路径,相当于将getAbsolutePath()中的“.”和“…”解析成对应的正确的路径举例如下:

2022-03-21 16:27:59 4856 2

原创 redis出现WRONGTYPE Operation against a key holding the wrong kind of value错误

操做redis时,想设置一个hash值,出现了WRONGTYPE Operation against a key holding the wrong kind of value 的错误HashOperations hashOperations = redisTemplate.opsForHash();hashOperations.put("user", "name", "zhangsan");出现Caused by: io.lettuce.core.RedisCommandExecutionExce

2022-02-24 10:17:44 40148 1

原创 总结Linux下Redis操作常用命令

1.Ubuntu/Centos安装redis(redis5.0.8不需要更新gcc)https://blog.csdn.net/qq_34246965/article/details/1152695422.启动redis服务及验证假如在redis文件下的bin目录下,命令:redis-server /etc/redis/redis.conf #启动redis服务假如在redis文件下/bin/redis-server /etc/redis.conf #启动redis服务3.连接redisre

2022-02-19 16:18:01 5602

原创 远程连接redis报错:Connection refused

1. 修改redis的配置文件sudo vi /etc/redis/redis.config注意:redis的配置文件位置不是固定的,有可能你的服务器的redis.config文件和我的位置不一样,请注意甄别。注释掉 bind 127.0.0.1这一行(在前面添加一个#就是注释)。如果redis3.2版本以上的,需要将保护模式修改成no2.检查防火墙防火墙是firewall,此处列举一些相关指令:查看已开放的端口(默认不开放任何端口)firewall-cmd --list-port

2022-02-19 12:35:22 39841 2

原创 Linux查找路径下所有含有某字符的文件,以及查看具体文件(日志)某字符前后几行

前言有时候在Linux的命令行里,需要在一堆文本文件中查找特定的关键字。一个一个文件打开找很麻烦的,有时候在Linux找到了日志log文件,只想查看含有某字符的某些行,但是如果日志太大,如果打开找会很麻烦,这里介绍一个在路径下或文件夹下查找含有关键字的文件,还有查看某文本文件里查找含有特定的关键字的前后几行的命令。测试的文件夹内容如下所示在/home/lwq/andrew里,有a.txt, b.txt, c.txt1.在路径下查找含有关键字的文件find path -name 'file_n

2022-02-18 19:26:25 2832

原创 springboot2.0+mybaits集成jwt(json web token)

1.JWT是什么Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。2.基于token的鉴权机制基于token的鉴权机制类似于http协议也是无状

2022-02-17 17:26:26 841

原创 Interceptor的基本介绍和使用preHandle、postHandle与afterCompletion

目录preHandlepostHandleafterCompletionpreHandle调用时间:Controller方法处理之前执行顺序:链式Intercepter情况下,Intercepter按照声明的顺序一个接一个执行若返回false,则中断执行,注意:不会进入afterCompletion顾名思义,该方法将在请求处理之前进行调用。SpringMVC中的Interceptor是链式的调用的,在一个应用中或者是在一个请求中可以同时存在多个Interceptor。每个Interceptor的

2022-02-15 19:17:01 8451 1

HttpClient(用CloseableHttpClient发送get/post请求)

HttpClient(用CloseableHttpClient发送get/post请求)

2022-02-28

chromecj3插件.zip

这是谷歌浏览器的插件,解压拖进谷歌扩展工具栏即可使用,安装好这个软件后,谷歌浏览器支持浏览axure rp原型图,并且点击逻辑事件完全拥有,对界面有非常好提高。

2020-07-18

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

TA关注的人

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