Kurze Antwort - es ist nicht möglich e aus der Box.
Der als "cron-Ausdruck" in der @Scheduled
-Annotation übergebene Wert wird in der Klasse ScheduledAnnotationBeanPostProcessor
unter Verwendung einer Instanz der Schnittstelle StringValueResolver
verarbeitet.
StringValueResolver
hat 3 Implementierungen aus dem Kasten heraus - für Placeholder
(z $ {}), für Embedded
Werte und für Static
Strings - von denen keiner kann das erreichen, was Sie suchen.
Wenn Sie unter Verwendung des Eigenschaftenplatzhalters in der Annotation um jeden Preis vermeiden müssen, entfernen Sie die Annotation und konstruieren Sie alles programmgesteuert. Sie können Tasks unter Verwendung von ScheduledTaskRegistrar
registrieren, was die @Scheduled
Annotation tatsächlich tut.
Ich werde vorschlagen, zu verwenden, was die einfachste Lösung ist, die funktioniert und die Tests besteht.
Was ist mit dem Erstellen einer Bean, die diesen Wert erhält, dann die Bean in Ihre Cron-Klasse autowiring? – mugua
Ist propertyClass eine Bean oder nur eine Klasse, die statische Methoden enthält? –
@KenBekov eine Bohne. – ltalhouarne