@Configuration
public class RedissonConfig {
@Autowired
private ProvinceService provinceService;
@Bean
public RBloomFilter initBloomFilter() {
Config config = new Config();
//分布式集群
// config.useClusterServers()
// .setScanInterval(2000)
// .addNodeAddress("redis://10.0.29.30:6379", "redis://10.0.29.95:6379")
// .addNodeAddress("redis://10.0.29.205:6379");
//哨兵
//config.useSentinelServers().addSentinelAddress("redis://10.0.29.30:27789");
//单机
// config.useSingleServer().setAddress("redis://192.168.54.61:6379");
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
// .setPassword().setDatabase()
RedissonClient redisson = Redisson.create(config);
//初始化布隆顾虑器
RBloomFilter<Object> bloomFilter = redisson.getBloomFilter("bloomFilter:province");
bloomFilter.tryInit(100000000L,0.001);
// 将数据库中所有省份id放入bloomFilter中
List<Integer> provinceIdsAll = provinceService.queryProvinceIdsAll();
provinceIdsAll.forEach(e -> bloomFilter.add(e));
return bloomFilter;
}
造成空指针异常的代码
List<Integer> provinceIdsAll = provinceService.queryProvinceIdsAll();
打个断点进入调试模式
可以看到service组件通过@AutoWired注入时为空。
由此可知,@Configuration
需要自动注入时@Service
的组件时,service层组件还没有被加载到IOC容器
中,@Configuration注解加载优先级会高于@Service注解。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99714.html