2015-10-07 14 views
6

Używam Spring Framework v4.1.7 i mam problemy planowania zadania CRON gdzie chcę zdefiniować parametr cron w pliku właściwości.spring @ Zaplanowane z cron nie rozwiązuje właściwości

Mój kod Java:

@Scheduled(cron = "${invoice.export.cron}") 
private void scheduledExport() { 
    // ... the code to execute ... 
} 

iw moich pliku właściwości mam invoice.export.cron: 0 0 7 * * MON-FRI?
aby włączyć harmonogram mam @EnableScheduling na moje główne klasy konfiguracji.

Próbowałem debugować ten problem i odkryłem, że wyrażenie cron powinno zostać usunięte z obiektu zastępczego obiektu here. po wywołaniu w resolveStringValue przenosi mnie do this lokalizacji do AbstractBeanFactory. I o ile widzę, oto problem. lista this.embeddedValueResolvers jest pusta ... dlatego nie rozwiązuje właściwości przekazanej do @Scheduled(cron).

ktoś ma pomysł, jeśli coś robię źle lub coś tu brakuje?

Z góry dziękuję! :)

Odpowiedz

7

Czy zarejestrowałeś numer PropertySourcesPlaceholderConfigurer?

Specjalizacja PlaceholderConfigurerSupport że postanawia $ {...} zastępcze w ramach wartości nieruchomości definition fasola i @Value adnotacji pod prąd wiosennym środowisku i jego zestaw PropertySources.

Nie jestem pewien, czy to działa również w @Scheduled, ale warto spróbować

@Configuration 
@PropertySource("classpath:whatever.properties") 
public class PropertiesWithJavaConfig { 

    @Bean 
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { 
     return new PropertySourcesPlaceholderConfigurer(); 
    } 
} 
+0

Dziękuję @Ruben to działa. :) – Dodge

Powiązane problemy