当前位置: 首页 > wzjs >正文

站酷网官网入口wordpress crawling

站酷网官网入口,wordpress crawling,信阳网站建设招聘,江苏网站建设哪家有温馨提示:图片有点小,可以放大页面进行查看... 问题1:版本冲突 直接上图,这个错表示依赖版本不匹配问题,我本地SpringBoot用的是2.7,但是Redisson版本用的3.32.5。 我们通过点击 artifactId跟进去 发现它…

温馨提示:图片有点小,可以放大页面进行查看...

问题1:版本冲突

直接上图,这个错表示依赖版本不匹配问题,我本地SpringBoot用的是2.7,但是Redisson版本用的3.32.5。

 我们通过点击 artifactId跟进去

发现它依赖的SpringBoot版本是3.1

 换成3.18.0之后就好了


 大家碰到NotClassDefFoundError ,就优先考虑依赖版本问题,连类定义都没有,太离谱了...

 问题2:循环依赖

这个错误还是很容易就复现出来的...

 这里放大关键报错信息

我在RedisConfig中同时完成RedisTemplate和RedissonClient的初始化。

因为我通过字段注入RedissonConnectionFactory。

当其他类需要redisTemplate的时候,即依赖RedisConfig,去完成Bean注册的时候发现redisTemplate依赖RedissonConnectionFactory,而RedissonConnectionFactory依赖RedissonClient,而RedissonClient依赖RedisConfig。走了一圈,发现RedisConfig依赖RedisConfig,所以产生了循环依赖。

@Configuration
public class RedisConfig {@Autowiredprivate RedissonConnectionFactory fa;@Value("${spring.redis.host}")private String host;@Value("${spring.redis.port}")private Integer port;@Value("${spring.redis.password}")private String password;@Beanpublic RedisTemplate<String, Object> redisTemplate(RedissonConnectionFactory factory) {Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();template.setConnectionFactory(factory);template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(jackson2JsonRedisSerializer);template.setHashKeySerializer(jackson2JsonRedisSerializer);template.setHashValueSerializer(jackson2JsonRedisSerializer);template.setDefaultSerializer(new StringRedisSerializer());template.afterPropertiesSet();return template;}@Beanpublic RedissonClient redissonClient() {Config config = new Config();// redis为单机模式config.useSingleServer().setAddress("redis://" + host + ":" + port);return Redisson.create(config);}
}

眼尖的朋友可能会有疑问,我为什么要将RedissonConnectionFactory作为字段,依赖注入?

其实原代码用的是RedisConnectionFactory,同时redisTemplate用的RedisConnectionFactory完成的Bean初始化。我在它的基础上加了个RedissonClient的初始化。

@Configuration
public class RedisConfig {@Autowiredprivate RedisConnectionFactory factory;@Beanpublic RedisTemplate<String, Object> redisTemplate() {Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();template.setConnectionFactory(factory);template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(jackson2JsonRedisSerializer);template.setHashKeySerializer(jackson2JsonRedisSerializer);template.setHashValueSerializer(jackson2JsonRedisSerializer);template.setDefaultSerializer(new StringRedisSerializer());template.afterPropertiesSet();return template;}
}

但其实,我这里不管用RedissonConnectionFactory还是RedisConnectionFactory都是一样的,最终其实用的都是 RedissonConnectionFactory....

先说答案:因为项目中引入了Redisson框架,因此Spring容器会优先使用RedissonConnectionFactory,因为会优先执行 RedissonAutoConfiguration 文件。

下面是分析过程:

我将字段注入去掉,并且方法参数改成了RedissonConnectionFactory,进行debug

 跟进RedissonConnectionFactory,继续跟进getConnection方法

 发现这里已经变成了redissonConnection

因为:项目中使用了Redisson,优先初始化RedissonClient,【依赖于RedissonConnectionFactory,所以RedissonConnectionFactory也初始化了】


看一下为什么RedisConnectionFactory会被替换为RedissonConnectionFactory:

 跟进RedisConnectionFactory,它继承自PersistenceExceptionTranslator

 查看PersistenceExceptionTranslator的引用,发现同时有RedisConnectionFactory和RedissonConnectionFactory两个Bean

 这里使用的是RedissonConnectionFactory。


解决办法:

方法1:将字段注入去掉,这样的话可以打破依赖关系:
RedisConfig - > RedissonConnectionFactroy 

方法2:在启动类上,添加属性 exclude ,将RedisAutoConfiguration 排除掉,这样的话,也是打破了RedisConfig -> RedissonConnectionFactory,改成了依赖RedisConnectionFactory


文章转载自:

http://dWnKtNtF.kqcqr.cn
http://inj3kBuP.kqcqr.cn
http://OkanywFZ.kqcqr.cn
http://TAvMfdnc.kqcqr.cn
http://7Oou7EZw.kqcqr.cn
http://oqY3kJPv.kqcqr.cn
http://eUy2PJWO.kqcqr.cn
http://O4fhmTZy.kqcqr.cn
http://89YXKQ5f.kqcqr.cn
http://NZMvYoyL.kqcqr.cn
http://3AWDVXb8.kqcqr.cn
http://JkvowUOU.kqcqr.cn
http://8pseip2z.kqcqr.cn
http://qzNvlh0j.kqcqr.cn
http://zQeWGzfd.kqcqr.cn
http://CXegUYUa.kqcqr.cn
http://lUjK0y80.kqcqr.cn
http://JCFhwFHa.kqcqr.cn
http://BA8MQs9O.kqcqr.cn
http://HvXunW3f.kqcqr.cn
http://DEnzTypa.kqcqr.cn
http://e90Vl6Uo.kqcqr.cn
http://3zhQCtOT.kqcqr.cn
http://E7RRKXuG.kqcqr.cn
http://3vPE9yOu.kqcqr.cn
http://1SCh6qMg.kqcqr.cn
http://A12cdgrQ.kqcqr.cn
http://hT8hfZ3N.kqcqr.cn
http://CtpYp84U.kqcqr.cn
http://jUgrZ7Bk.kqcqr.cn
http://www.dtcms.com/wzjs/756482.html

相关文章:

  • 靖江网站建设公司开源网
  • 最早做弹幕的网站自己干电商如何下手
  • 网站添加漂浮二维码怎么做网站建设的课件
  • 网站设计网络推广关键词淮安做网站.卓越凯欣
  • 查企业信息怎么查网站优化流程图
  • 百元便宜建站东莞网站程序
  • 一个人做网站原型郑州百度公司地址
  • 农机公司网站建设汕头网站建设系统
  • 已有域名 搭建网站网站页面关键词优化
  • 网站名称及网址网站开发具体问题
  • 申请主机网站wordpress 自动 tag
  • 青岛红岛做网站做海报的软件app免费
  • 装饰公司东莞网站建设网站群发推广软件
  • 寿光网站建设多少钱wordpress添加图片不显示
  • 垂直门户网站企业网站建设中图片优化的方法
  • 惠州做棋牌网站建设多少钱个人网站论文结束语
  • 新手什么网站做外贸成都网络推广公司排行榜
  • 做ppt用什么网站好深圳宝安seo外包
  • 什么做直播网站企业网站报价方案下载
  • 铁岭开原网站建设wordpress页面背景颜色
  • 怎么给网站做二维码中山家居企业网站建设
  • 营销网站html衡阳高端网站建设
  • 中山英文网站建设响应式布局网站建设
  • 公司网站建设小知识链接买卖是什么意思
  • 怎么做外贸网站免费网络加速器永久免费版
  • 医药公司网站备案做建材的网站有哪些
  • wordpress 企业站点免费手机网站app
  • 网站开发平台的定义网站建设建设公司有哪些
  • 长春火车站时刻表软文范例100例
  • 想学做网站学什么教程做国外销售都上什么网站