@ConfigurationProperties et @Value annotations

@ConfigurationPropertieset @Valuesont deux annotations couramment utilisées dans Spring Framework pour lire les valeurs de propriété à partir des fichiers de configuration. Sa fonction est de lier les valeurs des propriétés du fichier de configuration aux propriétés de la classe Java à utiliser dans l'application.

1、@ConfigurationProperties

@ConfigurationPropertiesLes annotations peuvent être utilisées pour lier les valeurs de propriété d'un fichier de configuration aux propriétés d'une classe Java, généralement une classe POJO utilisée pour stocker les informations de configuration. Cette annotation est valide sur les propriétés de toute la classe et convient aux structures de configuration complexes.

Exemple:

//添加get和set方法
@Data
//标记为bean
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOSSproperties {
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
}

Dans l'exemple ci-dessus, prefixl'attribut est utilisé pour spécifier le préfixe de la clé dans le fichier de configuration YAML pour lire la valeur de l'attribut dans le fichier de configuration et la lier à l'attribut de l'objet Java. Les noms d'attribut doivent être exactement les mêmes.

2、@Valeur

@ValueLes annotations sont utilisées pour lier une valeur de propriété unique à une propriété d'une classe Java. Cette annotation est généralement utilisée pour une simple lecture de propriétés.

 Exemple:

@Component
public class AliOSSUtils {

    @Value("${aliyun.oss.endpoint}")
    private String endpoint;
    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;
    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;
    @Value("${aliyun.oss.bucketName}")
    private String bucketName;
}

Dans l'exemple ci-dessus, @Valuel'annotation lie les valeurs des quatre propriétés ${aliyun.oss.endpoint}, ${aliyun.oss.accessKeyId}, ${aliyun.oss.accessKeySecret} et ${aliyun.oss.bucketName } respectivement. à l'attribut correspondant.

3. Principales différences :
  • @ConfigurationPropertiesIl convient pour lier plusieurs valeurs d'attribut à une classe Java, adapté aux structures de configuration complexes et est souvent utilisé dans des classes de configuration spécialisées.
  • @ValueIl convient pour lier une seule valeur d'attribut à l'attribut d'une classe Java. Il est plus adapté à une lecture de configuration simple et peut être utilisé pour diverses classes.

Lorsque vous choisissez quelle annotation utiliser, vous pouvez décider en fonction de vos besoins. Vous pouvez l'utiliser si vous devez lier plusieurs valeurs d'attribut et que ces valeurs d'attribut ont une certaine structure @ConfigurationProperties. Vous pouvez l'utiliser si vous n'avez besoin de lier qu'une seule valeur d'attribut ou si vous devez l'utiliser à différents endroits de la classe @Value.

Guess you like

Origin blog.csdn.net/LuoluoluoluoYan/article/details/132206765