java学习之路

在静态方法中实现依赖注入

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欢迎各位踊跃加入!

上一篇下一篇

猜你喜欢

热点阅读