Consider defining a bean of type ‘com.bsj.system.service.RedisService‘ in your configuration

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Consider defining a bean of type ‘com.bsj.system.service.RedisService‘ in your configuration

今天遇到这个注入失败的问题 看了很多帖子解决办法都是加@MapperScan之类的注解 但是试了不行 最后奉上我自己的解决办法


要加入下面两个Redis的配置类

@Configuration
public class RedisConfig extends BaseRedisConfig {
}
public class BaseRedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisSerializer<Object> serializer = redisSerializer();
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(serializer);
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashValueSerializer(serializer);
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
    @Bean
    public RedisSerializer<Object> redisSerializer() {
        //创建JSON序列化器
        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        //必须设置,否则无法将JSON转化为对象,会转化成Map类型
        objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
        serializer.setObjectMapper(objectMapper);
        return serializer;
    }
    @Bean
    public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
        RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);
        //设置Redis缓存有效期为1天
        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer())).entryTtl(Duration.ofDays(1));
        return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration);
    }
    @Bean
    public RedisService redisService(){
        return new RedisServiceImpl();
    }
}
目录
相关文章
|
前端开发 JavaScript 网络协议
深入理解Python Web开发中的前后端分离与WebSocket实时通信技术
【7月更文挑战第18天】前后端分离采用Flask/Django框架,前端JavaScript框架如Vue.js与后端通过AJAX/Fetch通信。WebSocket提供实时双向通信,Python可借助websockets库或Flask-SocketIO实现。最佳实践包括定义清晰的接口规范,确保安全性(HTTPS,认证授权),优化性能,和健壮的错误处理。结合两者,打造高效实时应用。
337 1
|
SQL 前端开发 安全
详细介绍前后端分离必备的接口规范,包括命名规范、参数规范、错误处理规范等
详细介绍前后端分离必备的接口规范,包括命名规范、参数规范、错误处理规范等
3578 1
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
消息中间件 Linux
Linux IPC(进程间通信)管理:深入解析ipcs和ipcrm命令的用法与示例
在Linux操作系统中,进程间通信(IPC)是实现进程之间数据传递和同步的关键机制。Linux提供了多种IPC方式,如消息队列、信号量和共享内存等。为了优化系统性能与稳定性,及时管理和清理IPC资源非常重要。本文将深入介绍ipcs和ipcrm命令的使用方法,并给出丰富的示例,以帮助读者更好地理解IPC资源管理的实践技巧。
1501 1
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
|
人工智能 监控 数据可视化
智慧工地全套源代码 智慧工地信息化管理平台源码(PC端+移动端+可视化数据大屏端)
v智慧工地全套源代码 智慧工地信息化管理平台源码(PC端+移动端+可视化数据大屏端)
932 2
|
机器学习/深度学习 算法 TensorFlow
【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(一)
【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(一)
513 0
【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(一)
|
vr&ar 计算机视觉
REALY头部重建榜单冠军模型HRN解读【OpenVI—论文解读系列】
高保真 3D 头部重建在许多场景中都有广泛的应用,例如 AR/VR、医疗、电影制作等。尽管大量的工作已经使用 LightStage 等专业硬件实现了出色的重建效果,从单一或稀疏视角的单目图像估计高精细的面部模型仍然是一个具有挑战性的任务。 本文中,我们将介绍CVPR2023最新的头部重建论文,该工作在单图头部重建榜单REALY上取得正脸、侧脸双榜第一,并在其他多个数据集中取得了SOTA的效果。
882 6
|
存储 人工智能 安全
云计算与网络安全:探索云服务、网络安全和信息安全的交叉点
本文将深入探讨云计算与网络安全之间的紧密联系。我们将分析云服务如何改变传统的网络安全防护模式,以及这些变化如何影响信息安全的未来发展。文章将详细讨论云服务提供的安全优势,同时揭示其潜在的安全风险。我们还将探索网络安全在保护云基础设施中的关键作用,以及信息安全技术如何适应云计算环境的挑战。通过对比分析和案例研究,本文旨在为读者提供一个全面的视角,以理解云计算与网络安全之间复杂而微妙的关系。
184 28
|
缓存 网络协议 NoSQL
深入理解Linux网络——TCP连接建立过程(三次握手源码详解)-3
五、异常TCP建立情况 1)connect系统调用耗时失控 客户端在发起connect系统调用的的时候,主要工作就是端口选择。在选择的过程中有一个大循环