Я определяю запланированные задания с шаблонами стиля Cron весной, используя аннотацию @scheduled < /code>. На самом деле есть два файла свойств: один конфигурация по умолчанию и один конфигурация профиля, которая зависит от среды (например, Dev, Test, Prod Customer 1, Prod Customer 2 и т. Д.) И переопределяет некоторые значения по умолчанию. /> Бобы работы выглядят так: < /p>
@Component
public class ImagesPurgeJob implements Job {
private Logger logger = Logger.getLogger(this.getClass());
@Override
@Transactional(readOnly=true)
@Scheduled(cron = "${jobs.mediafiles.imagesPurgeJob.schedule}")
public void execute() {
//Do something
//can use DAO or other autowired beans here
}
}
< /code>
Соответствующие части моего контекста XML: < /p>
classpath:config/default-config.properties
classpath:config/environment-config.properties
< /code>
Мне очень нравится это. Это довольно просто и чисто с минимальным XML. < /P>
Однако у меня есть еще одно требование: некоторые из этих заданий могут быть полностью отключены в некоторых случаях. Нет: < /p>
jobs.mediafiles.imagesPurgeJob.enable=true or false
jobs.mediafiles.imagesPurgeJob.schedule=0 0 0/12 * * ?
< /code>
Как я могу использовать этот параметр в пружине для условного создания или просто игнорировать бобы, в зависимости от этого параметра конфигурации? Но бобы все еще будут созданы, и конфигурация была бы немного неясной, поэтому я чувствую, что должно быть лучшее решение.
Подробнее здесь: https://stackoverflow.com/questions/184 ... -in-spring