Maison >Java >javaDidacticiel >Comment charger statiquement @configurationProperties dans Springboot

Comment charger statiquement @configurationProperties dans Springboot

WBOY
WBOYavant
2023-05-20 23:55:041704parcourir

Lors du développement normal, nous mettons les constantes qui ne changent fondamentalement pas dans les éléments de configuration, tels que les propriétés ou les fichiers yml, afin qu'elles ne puissent être chargées qu'au démarrage. Comment faire ?

Nous utilisons l'annotation @ConfigurationProperties de Springboot et les propriétés statiques correspondantes.

Mais si l'opération est incorrecte, les données chargées seront vides. Pour savoir pourquoi, voir le cas ci-dessous.

1. Cas d'erreur

//错误1:get\set都是静态方法
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public static Integer getPreview() {
        return preview;
    }

    public static void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
//错误2:跟第一种差不多,只是用了lombok注解代替了get\set方法,get\set也都是静态方法
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;
}

2. Cas de réussite

@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public static Integer getPreview() {
        return preview;
    }

    public void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
    public static Integer preview;

    public void setPreview(Integer preview) {
        MobileConfig.preview = preview;
    }
}

3. Vous devez appeler la méthode set. Si cette méthode est une méthode statique, elle ne peut pas être injectée dynamiquement, il vous suffit donc d'ajouter la méthode get à static en tant que méthode statique. Si @Data est utilisé, il vous suffit de réécrire l'ensemble. méthode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer