美文网首页java学习之路
在静态方法中实现依赖注入

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

作者: 唯有努力不欺人丶 | 来源:发表于2020-08-05 15:46 被阅读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欢迎各位踊跃加入!

    相关文章

      网友评论

        本文标题:在静态方法中实现依赖注入

        本文链接:https://www.haomeiwen.com/subject/ibqorktx.html