在静态方法中实现依赖注入
2020-08-05 本文已影响0人
唯有努力不欺人丶
这个功能怎么说呢,之前使用了阿里的物联网平台实现了消息的推送接收。
然後在接收数据以后要实现的操作有将记录写入数据库,同时也要实现缓存等功能。但是呢,这个接收到消息的方法是阿里那边提供的一个静态方法,所以怎么在静态方法中实现依赖注入,注入dao层和redisTemplate就是本篇文章要讲的了。
其实这个实现方法可能是多样的,因为之前随口问了下群友,有SpringContextHolder,还有说上下文获取bean 的,反正我是用了一种在对象里面声明一个静态变量的方法实现的,直接放代码:
@Component
public class AmqpJavaClient implements ApplicationRunner{
@Autowired
StringRedisTemplate stringRedisTemplate;
public static AmqpJavaClient amqpJavaClient;
@PostConstruct
public void init() {
amqpJavaClient = this;
amqpJavaClient.stringRedisTemplate = this.stringRedisTemplate;
}
private static void Test(String key,String value) {
amqpJavaClient.stringRedisTemplate.opsForValue().set(key, value);
}
@Override
public void run(ApplicationArguments args) throws Exception {
Test("321", "213");
}
如上图所示,在这个类中如果静态方法想调用stringRedisTemplate这个对象的话需要amqpJavaClient.stringRedisTemplate的形式调用。
亲测可用。
本篇笔记就记到这里,如果稍微帮到你了记得点个喜欢点个关注,也祝大家工作顺顺利利!java技术交流群130031711欢迎各位踊跃加入!