How to start a "daemon thread" in a Spring application
posted 5 years ago
I am new to both Spring and java in general and here is what I want to do.
I have a message bus internally, where events are posted and I need a thread that will be listening on this bus.
This thread must have access to the other beans (to update the DB for instance).
Here is my problem:
I am planning to use Spring for the dependency injection including for my "daemon bean". However, it looks like I need to use a contextlistener to start up my thread. If I understand this correctly, I will not be able to leverage the dependency injection if I start my thread this way.
My question is therefore the following:
How to start a long living thread at application startup time in a Spring application?
To Be honest, your best solution is to use Spring Integration or Spring JMS. Both have the ability to create a Channel/Queue which you can have a POJO bean listening in on that channel. so whenever something is placed on the channel, the code will run.
Check out the documentation for both at www.springframework.org