- 博客(17)
- 收藏
- 关注
原创 解读HashMap中put方法的源码
由于重写了hashCode方法,致使strKey的hashCode和 strKey2的hashCode相同,但是他们equals的结果却不相同,这里使strKey和strKey2的hashCode相同的目的是为了制造散列冲突(散列冲突指的是 ”桶“ 已经被填充的现象,也就是元素对应的node数组下标的位置已经有值了),即由于hashCode相同导致不同的元素存放在node数组的同一位置,要注意hashCode即便是相同的也会出现散列冲突,这里只是为了模拟散列冲突所以设置了相同的hashCode。
2022-11-23 00:04:22 1101
原创 OpenFeign设置circuitbreaker=true后Feign的超时时间(readTimeout)失效
也就是说我们配置的readTimeout5000并没有生效。是由readTimeout来决定Feign调用服务端控制器方法的超时时间,这一点没错,但在此之前有另外一处来确定调用是否超时。结论是Hystrix的超时判断在Feign的超时判断时间,Hystrix默认超时时间是1秒.由于我用的是2021版本的Cloud,所以在主配置类上开启Hystrix的注解已经发生变更,,解决方案可直接看结尾。......
2022-07-21 16:47:13 2688
原创 SpringCloud Stream @EnableBinding注解过时
@EnableBinding源码中明确声明该注解在从3.1版本开始被弃用,推荐我们使用函数编程的方式我将给出一个生产者和消费者的使用案例:生产者案例:yml配置:server: port: 8801spring: application: name: cloud-stream-provider rabbitmq: host: 192.168.220.101 port: 5672 username: guest password:
2022-04-11 12:45:35 10364 5
原创 SpringCloud Bus消息总线 定点通知不生效
springcloud版本: 2021.0.1我的解决方法:首先需要确保基本配置没有问题之后在Config客户端显示地指定 bus.id 的值server: port: 3355spring: application: name: config-client cloud: #Config客户端配置 config: label: master #分支名称 name: config #配置文件名称 profile: de
2022-04-10 11:23:12 643
原创 Java基础之内部类(一)
内部类大致分为以下几种:简单内部类,局部内部类,匿名内部类,静态内部类简单内部类(不被static修饰):它定义在类的内部,并且不定义在方法内它可以是私有的(private)、受保护的(protected)、默认的(无)、公有的(public)而普通类的访问权限只能是默认的(无)、公有的(public)构造简单内部类对象的方式:E是一个内部类首先创建E的外部类对象 再通过 外部类对象.new E()的方式构造出...
2022-04-07 12:07:38 258
原创 (Comparator<T> & Serializable)的作用
没错,Comparator接口是一个函数式接口,它只有一个抽象方法、一些静态方法以及一些默认方法,而接口的静态方法是不需要我们实现的,接口的默认方法我们可以选择不去实现。//判断这个匿名内部类是否实现了接口D。lambda表达式:(c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2))lambda表达式相当于构造了一个匿名内部类的对象,而这个匿名内部类实现了Comparator以及Serializable接口。
2022-04-05 10:52:36 1334
原创 @EnableCircuitBreaker过时
@EnableCircuitBreaker注解的文档已经明确表明,从3.0.1版本开始Hystrix已经从SpringCloudNetfix中移除,并且该注解已过时。现用@EnableHystrix注解即可如果需要使用@EnableHystrix注解,则需在父工程中显式的指明hystrix版本号<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>
2022-04-03 21:39:22 2337
原创 @RequestBody注解的简短介绍
该注解标注在控制器方法的参数前,并且只能存在一个使用场合:1.请求的请求方式为post2.请求体内容类型为 application/json知识补充:首先普通的请求方式有两种(这里不介绍put、delete等方式):get、post请求get请求的请求报文主要包括两部分:请求行,请求头而post请求的请求报文主要包括三部分:请求行,请求头,请求体请求行中包含了:请求的方式、请求的资源路径、请求的协议和版本号请求头中包含各种键值对:可接收的数...
2022-03-25 19:46:54 635
原创 Shiro整合Redis出现异常 org.apache.shiro.authc.SimpleAuthenticationInfo cannot be cast to org.apache.shiro
这个问题也是折磨了我半天:// 注意本文中绿色字体和红色字体的区别 分析情况:在Shiro底层进行调用的过程中,身份验证和授权验证 都会尝试从缓存中取出数据。使用debug进行调试:发现身份验证和授权验证 都会调用自定义Cache的get和put方法,并且两种验证过程传给自定义Cache的get和put方法的参数key是相同的。底层第一步:登陆: 登陆时首先会调用 getAuthenticationCacheKey(AuthenticationT...
2022-03-20 16:58:24 5477
原创 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class
使用SpringMVC和mybatis响应JSON格式的数据时发生错误:响应状态码500原因:mybatis配置文件或者mapper文件中使用了懒加载解决方案一:关闭mybatis配置文件中或者mapper文件中配置的懒加载将两者一起关闭,或者将mapper文件中的fetchType属性修改为eager解决方案二:在关联查询的相关bean上添加注解@JsonIgnoreProperties("handler")原理应该是开启懒加载后导致Employee对象的数据不完整,...
2021-12-02 16:37:27 1406
原创 Cookie中包含空格,响应500解决方案
情况是这样的:在Cookie中存储时间,使用了以下格式来解析日期:SimpleDateFormat simpleDateFormat = new SimpleateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(new Date());之后添加cookieCookie cookie = new Cookie("date", format);response.addCookie(cooki..
2021-11-20 09:54:35 1098
原创 tar (child): 无法连接至 XXX 解析失败
我出现这个问题的情况:对mysql数据库备份的shell脚本中写了这样一段代码,DATETIME=$(date "+%Y-%m-%d_%H:%M:%S")然后将上述格式的时间作为压缩包名。使用tar -zxvf 对该压缩包进行解压,出现解析失败。原因:压缩包名中包含 冒号 :解决方法:使用 tar --force-local -zxvf 压缩包名 ...
2021-11-11 09:47:37 1827
原创 CentOS7 使用yum 安装mysql8
直接上步骤:1.点击以下链接进入到官网MySQL :: Download MySQL Yum Repository点击Download下载RPM 包,下载完成后,随便放到centos哪个位置2.在RPM安装包所在的目录下,使用rpm命令进行安装:rpm -ivh mysql80-community-release-el7-4.noarch.rpm (这个标红的文件名就是,你下载的文件的全名)3.使用rpm命令查看该文件安装到哪里:rpm -ql mysql80-commu..
2021-11-09 15:48:07 1650 1
原创 方法引用(“ :: “ 双冒号写法的常见使用方式)
双冒号 ::的作用是更简洁的替换 lambda表达式的一般形式 - > 。首先要明白什么时候能写 lambda 表达式 ?lambda作用于函数式接口,函数式接口指的是 只有一个抽象方法的接口(当然,该接口可以拥有多个默认方法和静态方法,不会影响它是函数式接口的事实),当我们需要重写函数式接口时,我们就可以使用lambda表达式的形式,来替换接口的匿名内部类的写法。现有以下几种写法(类名::类的实例方法 或类名::类的静态方法 或对象::对象的实例方法 或 类名::new...
2021-10-11 11:31:06 3004 1
原创 有关protected修饰符的访问权限
如果希望超类中的方法和属性能够被子类访问那么可以使用protected修饰符,但需要谨慎使用protected属性,它违背了数据封装原则(子类能访问父类的protected域),而protected修饰的方法是更具有实际意义的,比如Object的clone方法 protected可见性为:包可见以及子类可见首先来解释一下什么是 包可见创建一个 在test1包下的类Test1,其中有两个被protected修饰的String类型的属性,其中一个是静态的...
2021-09-23 20:32:26 2761
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人