gpt4 book ai didi

java - 在 Spring Boot 中检查 Redis @Configuration

转载 作者:可可西里 更新时间:2023-11-01 10:55:41 24 4
gpt4 key购买 nike

有没有办法在运行 spring boot 应用程序时检查是否正在加载 @Configuration 组件?我在使用这个应用程序时遇到了一些“空指针”问题:

主类

@ComponentScan(basePackages = "com.pack")
@EnableAutoConfiguration
public class App {

public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}

配置类

package com.pack.config;
@Configuration
public class DataBaseConfig {

@Bean
JedisConnectionFactory jedisConnFactory() {
return new JedisConnectionFactory();
}

@Bean
public StringRedisSerializer stringRedisSerializer() {
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
return stringRedisSerializer;
}

@Bean(name = "redisTemplate")
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(jedisConnFactory());
redisTemplate.setKeySerializer(stringRedisSerializer());
return redisTemplate;
}
}

当我尝试使用 RedisTemplate 时:

public class ServiceDummy  {

@Autowired
RedisTemplate<String, Object> redisTemplate;
public void save(String data){
redisTemplate.opsForValue().set("1234", data);
}

}

我得到一个 nullPointer。

最佳答案

正如@Todd 正确指出的那样,您不能指望 Spring 管理未注册到 Spring 上下文的 bean。

所以你需要:

  1. 使用 @Component 注释将该 bean 标记为 Spring bean,或者在这种情况下使用 @Service 注释会更好。
  2. 确保 ServiceDummycom.pack 包下,以便 Spring 可以扫描该组件。

关于java - 在 Spring Boot 中检查 Redis @Configuration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42707124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com