использование @postconstruct и @ Scheduled аннотации вместе



Я новый ученик и с использованием Spring аннотации для конфигурации можно использовать как @PostConstruct и @запланированные(с фиксированной процентной ставкой = 60л * 1000л)
по тому же методу, что и ниже ? если да, то какой должна быть аннотация к классу ?



@Component
public class Cache {

@PostConstruct
@Scheduled(fixedRate = 60L * 1000L)
public void refreshCache() {
...
}

}
531   2  

2 ответов:

Да, ваши аннотации в классе верны. Но вам лучше использовать:

@Scheduled(fixedRate = 60L * 1000L, initialDelay=0)
public void refreshCache() {

Без @PostConstruct потому что:

  1. только один метод в классе может быть аннотирован с помощью @PostConstruct.
  2. вы не можете выбрасывать проверенные исключения из метода, используя @PostConstruct.
  3. другие не будут автоматически подключать этот компонент.
Есть и другие причины, но на этом я останавливаюсь.

Если вы не используете xml, этот пример должен быть тем, что вы хотите, который на самом деле является приложением spring boot. https://github.com/soiff-spring/spring-boot-example


Мой полный пример здесь: https://github.com/soiff-spring/spring-mvc-example

Пожалуйста, обратите внимание на следующий файл и класс:

  1. hello-servlet.xml
  2. HelloScheduler

Упакуйте этот проект и поместите его в контейнер tomcat и запустите tomcat, вы увидите журнал выглядит следующим образом:

20:06:53.003 [pool-1-thread-1] INFO xyz.cloorc.example.springmvc.HelloScheduler - 1480594013001 : hello world ...
20:06:54.001 [pool-1-thread-1] INFO xyz.cloorc.example.springmvc.HelloScheduler - 1480594014001 : hello world ...
20:06:55.001 [pool-1-thread-1] INFO xyz.cloorc.example.springmvc.HelloScheduler - 1480594015001 : hello world ...
20:06:56.002 [pool-1-thread-1] INFO xyz.cloorc.example.springmvc.HelloScheduler - 1480594016002 : hello world ...
20:06:57.000 [pool-1-thread-1] INFO xyz.cloorc.example.springmvc.HelloScheduler - 1480594017000 : hello world ...
20:06:58.002 [pool-1-thread-1] INFO xyz.cloorc.example.springmvc.HelloScheduler - 1480594018002 : hello world ...

Наслаждайтесь.

Comments

    Ничего не найдено.