Возможно ли каким-либо образом @ Inject Service-Bean (скажем, сессионный компонент) в Слушатель сущности?
Рассмотрим следующий сценарий в качестве примера
Организация:
@Entity
@EntityListeners(BookListener.class)
public class Book {
// fields, getters & setters
}
Класс полезности:
@Singleton
public class BookUtil {
private BookRepository bookRepo;
private List<Book> bookList;
@Inject
public BookUtil(BookRepository bookRepo){
this.bookRepo = bookRepo;
this.bookList = this.bookRepo.findAll();
}
public void refreshBooks(){
this.bookList = this.bookRepo.findAll();
}
}
Слушатель:
public class BookListener {
@Inject
BookUtil bookUtil // --> CAN THIS BE ACHIEVED?
@PostPersist
private void refreshCache(Book b){
bookUtil.refreshBooks();
}
}
Я попробовал несколько вещей, о которых мог подумать, но ни одна из них не привела к успешному внедрению экземпляра BookUtil. Я мог бы вручную создать экземпляр, который работает. Но я предпочитаю инъекцию, так как тогда BookRepository (внутри BookUtil) также будет внедрен, и мне не придется беспокоиться об этом