admin管理员组文章数量:1402998
这里写自定义目录标题
- springBoot整合redis,出现Consider defining a bean of type 'com.***.***.service.***' in your configuration.
- RedisConnectFactory注入不了报红
- 可能会导致的问题!?
- 为什么会出现这样的问题?!
springBoot整合redis,出现Consider defining a bean of type ‘com.***.***.service.***’ in your configuration.
redis 下载安装略
redis界面管理工具下载安装略
下面主要说一下遇到的问题
RedisConnectFactory注入不了报红
public class RedisConfig extends CachingConfigurerSupport {
@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);
objectMapper.enableDefaultTyping(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);
}
}
因为Spring找不到redisConnectFactory的bean导致出现问题!引起工具类的redisTemaplate注入不了!
@Service
public class RedisServiceImpl implements RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Override
public void set(String key, Object value, long time) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
}
}
可能会导致的问题!?
如果当别的地方要使用到redisService的时候,启动项目会报错!因为spring - ioc创建bean的时候是通过注解@Autowied注解,通过动态代理创建对象的!但是由于上面说了,不能找到redisConnectFactory所以注入失败!
为什么会出现这样的问题?!
这个项目是springBoot创建的,并且redis的整合在另一个工程里面,
springBoot 的自动装配 扫描的spring启动类同级的包及其子包,但是由于不是统一个项目导致扫描不到bean!
解决:
@SpringBootApplication(scanBasePackages = “com.mall”)
//@ComponentScan(“com.mall”)
启动类上,加上扫描!
最后成功重启!
不知道理解对不对,希望能对看到这篇文章的人给个启发,减少错误!
本文标签: definingBeanSpringBootredisabcService
版权声明:本文标题:springBoot整合redis出现Consider defining a bean of type com.abc.abcService in your configuration 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1738336321a2076986.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论