# SpringBoot deux façons d'injecter des variables membres statiques

SpringBoot injecte des variables membres statiques de deux manières


Ajouter l'annotation @Autowired à la méthode de définition, ajouter l'annotation @Component à la définition de classe

  • Le mot-clé static de la méthode setter de la variable statique doit être supprimé, sinon l'injection échouera.
@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 moyen de réaliser

  • La méthode annotée par @PostConstruct est exécutée après le chargement du constructeur de la classe, c'est-à-dire après le chargement du constructeur, la méthode init est exécutée. Cette méthode est similaire à la configuration des méthodes init-method et destruction-method en xml, et définit les opérations que le conteneur de ressort effectue avant l'initialisation du bean et la destruction du conteneur.
@Component
public class RedisClient1 {
    
    
    
        @Autowired
        private static RedissonClient redissonClient;

        private static RedisClient1 redisClient1;

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

Je suppose que tu aimes

Origine blog.csdn.net/qq_37248504/article/details/108763378
conseillé
Classement