2015-10-20 3 views
0

Je souhaite utiliser la configuration Spring Boot dans mon application, cependant, il y a une chose que je n'aime pas. Mon application est en phase de développement et les clés de propriété sont susceptibles de changer. Habituellement, j'utilise des constantes String statiques publiques pour les noms de propriétés, donc chaque fois qu'une touche change, je dois seulement la changer en un seul endroit. Cela étant dit, je dois configurer mon application comme ceci:Omettre un espace réservé dollar dans l'annotation Spring @Value

@Value("${" + AppConstants.SOME_STRING_PROPERTY + "}") 
private String someProperty; 

Est-il possible de « propre » pour y parvenir, peut-être sans utiliser ${} espace réservé tout le temps?

+0

Idéalement, les valeurs changent, pas les clés. Mais d'accord, si c'est la situation. Je ne sais pas personnellement comment y parvenir, mais je sais que Intellij peut refactoriser cela aussi, donc vous ne changerez qu'à un seul endroit. –

+0

Comme je l'ai dit, les changements clés sont le résultat des changements de conception à ce stade du travail. De plus, avoir une classe avec des clés de propriété sert de documentation aux développeurs - il est beaucoup plus facile de trouver toutes les options de configuration de cette façon que de rechercher toutes les occurrences d'annotation @Value. Je voudrais aussi éviter de refactoriser manuellement avec IDE, c'est pourquoi j'utilise des outils comme Spring en premier lieu. – nachteil

+1

Sauf si vous êtes prêt à écrire votre propre annotation et son post-processeur, vous ne pouvez pas omettre '$ {}'. –

Répondre

1

Regardez la fonctionnalité @ConfigurationProperties. Vous pouvez importer l'ensemble du fichier de configuration dans Java POJO sans aucun signe dollar. Vous pouvez également valider la configuration avec des annotations de validation et vous obtenez une sécurité de type hors de la boîte.