有没有办法在运行spring boot app时检查是否正在加载@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。
答案 0 :(得分:0)
正如@Todd正确指出的那样,你不能指望Spring管理那些没有注册到Spring上下文的bean。
所以你需要:
@Component
注释将该bean标记为Spring bean,或者在这种情况下@Service
注释会更好。ServiceDummy
位于com.pack
包下,以便Spring可以扫描该组件。