@ConditionalOnProperty conditionnellement œuvres

J'ai le code suivant:

@Scheduled(cron = "${cron.foo.bar}")
@ConditionalOnProperty(name="cron.foo.bar.enabled", relaxedNames = false)
public void parseFooBar() {
... blah blah blah ...
}

Dans mon fichier de propriétés, j'ai:

cron.foo.bar=1 * * * * ?
cron.foo.bar.enabled=false

Cela ne fonctionne pas, et parseFooBar est exécuté à chaque minute sur la 1ère seconde.

Cependant, si j'ajoute champ:

@Value("${cron.foo.bar.enabled}")
private String enabledProp;

afin que je puisse faire un journal et de voir ce qu'il est, parseFooBar ne soit PAS exécutée. Retrait de la Chaîne injectée une fois de plus, voit parseFooBar exécuter. Ce que je fais mal?

Edit: C'est à l'aide de Printemps 4.1.5, le Printemps de Démarrage 1.2.1, et JDK 8

Edit 2: le déplacement de l'annotation de type fonctionne également. (sans avoir à forcer la @Valeur). Mais l'annotation est à la fois une Méthode et une annotation de Type? Il me donne un peu plus de flexibilité pour le faire sur la méthode...

OriginalL'auteur Jeff Wang | 2015-05-06