# SpringBoot两种方式注入静态成员变量

SpringBoot两种方式注入静态成员变量


set方法上添加@Autowired注解,类定义上添加@Component注解

  • 静态变量的setter方法的static关键字要去掉,不然会注入失败。
@Component
public class RedisClient {
    
    

    private static Logger logger= Logger.getLogger(String.valueOf(RedisClient.class));

    private static RedissonClient redissonClient;

    @Autowired(required = true)
    public void setRedissonClient(RedissonClient redissonClient){
    
    
        RedisClient.redissonClient=redissonClient;
        logger.info("redisclinet注入完成!");
    }

    public static void setList(){
    
    
        redissonClient.getList("one").add("two");
    }
}

@PostConstruct方式实现

  • @PostConstruct 注解的方法在加载类的构造函数之后执行,也就是在加载了构造函数之后,执行init方法。这种方式和在xml中配置 init-method和 destory-method方法差不多,定义spring 容器在初始化bean和容器销毁之前的所做的操作。
@Component
public class RedisClient1 {
    
    
    
        @Autowired
        private static RedissonClient redissonClient;

        private static RedisClient1 redisClient1;

        @PostConstruct
        public void init() {
    
    
            redisClient1 = this;
            redisClient1.redissonClient= this.redissonClient;
        }
}

猜你喜欢

转载自blog.csdn.net/qq_37248504/article/details/108763378