Мне нужно создать индикатор выполнения в webapp. Мне нужен поток, который выполняет работу и контроллер, который проверяет этот поток, чтобы получить его статус.
Как установить его с помощью beans (внутри этой темы мне нужно автоувеличивать некоторые сервисы)? Могу ли я использовать поток как не-singleton bean?
Спасибо.Весенние бобы и нитки
ответ
Я бы создал для этого небольшой класс упаковки. У вас могут быть все ваши сеттеры в классе для обработки инъецированных услуг, вы можете использовать InitializingBean
, чтобы начать поток, и вы можете вставлять bean-компонент в другие классы, чтобы они могли вызывать getters на volatile
или . Что-то вроде:
public class ProgressBar implements InitializingBean, Runnable, DisposableBean {
private volatile int someField;
private Thread thread;
// start the thread after the properties are set
public void afterPropertiesSet() {
thread = new Thread(this);
// maybe make it a daemon thread
// thread.setDaemon(true);
thread.start();
}
// stop it when spring is shutting down
public void destroy() {
thread.interrupt();
}
public void run() {
... thread code goes here
}
// spring setter
public void setSomeService(SomeService someService) {
this.someService = someService;
}
// getter used by other beans to get some value from this class
public int getSomeField() {
return someField;
}
}
Вы также можете использовать некоторые классы таймера Спринга для этого, конечно, хотя они работают лучше для повторяющихся задач, которые выполняются каждый так часто.
Но нить должна быть неэлементной? Как определить его с помощью аннотации? – Tobia
Значит, вы хотите многих из них? Затем вы должны превратить его в «FactoryBean». http://blog.springsource.org/2011/08/09/whats-a-factorybean/ – Gray
с реализацией выше может потребоваться стандартный новый ProgressBar() ;? – Tobia
- 1. Весенние бобы: сеанс и globalSession
- 2. Весенние бобы DTD и XMLNS
- 3. Jackson Serializers Весенние бобы
- 4. динамически менять весенние бобы
- 5. Обновить весенние бобы, исключая некоторые бобы
- 6. Как «белая этикетка» весенние бобы
- 7. Назначить весенние бобы с аннотациями
- 8. Отшелушивающие весенние бобы в Муните
- 9. Что в мире - весенние бобы?
- 10. Вставить весенние бобы в RestEasy
- 11. Весенние бобы неразрешенные в IntelliJ
- 12. Интегрируйте весенние бобы и JSP-теги
- 13. Какие весенние бобы и весенний контекст используются?
- 14. Весенние бобы с Activiti BPMN
- 15. HK2 не видит Весенние бобы
- 16. Весенние однополюсные бобы в разных контекстах применения
- 17. Весенние бобы не показаны под пружинными элементами
- 18. Non Singleton (прототип) Весенние бобы JMX moniterable
- 19. Инициализировать весенние бобы при запуске теста Джерси
- 20. Весенние бобы (бизнес-слой) в отдельном модуле
- 21. Весенние бобы дважды инициализируются - интеграция весов
- 22. как подключить синглтон Весенние бобы при десериализации
- 23. Весенние бобы: неоднозначный конструктор при создании компонента
- 24. Как впрыскивать весенние бобы из внешней войны?
- 25. Весенние однополюсные бобы в высокой нагрузке
- 26. Вводные весенние бобы в Groovy Script
- 27. Весенние бобы GeoModule bean injection to RepositoryRestMvcConfiguration
- 28. Весенние бобы созданы, но не автоуровневые
- 29. Весенние бобы не настроены для struts2?
- 30. Распечатайте все весенние бобы, которые загружены
Какова область действия задачи «прогресс-бар»? эти потоки ограничены вашей сессией? –