我试图将Spring依赖项注入到JPA EntityListener中。这是我的侦听器类:
@Configurable(autowire = Autowire.BY_TYPE, dependencyCheck = true) public class PliListener { @Autowired private EvenementPliRepository evenementPliRepository; @PostPersist void onPostPersist(Pli pli) { EvenementPli ev = new EvenementPli(); ev.setPli(pli); ev.setDateCreation(new Date()); ev.setType(TypeEvenement.creation); ev.setMessage("Création d'un pli"); System.out.println("evenementPliRepository: " + evenementPliRepository); evenementPliRepository.save(ev); } }
这是我的Entity类:
@RooJavaBean @RooToString @RooJpaActiveRecord @EntityListeners(PliListener.class) public class Pli implements Serializable{ ...
但是,我的依赖项(即evenementPliRepository)始终为null。
evenementPliRepository
注入对无状态bean的依赖关系的一种方法是将依赖关系定义为“静态”,创建一个setter方法,以便Spring可以注入依赖关系(将其分配给静态依赖关系)。
将依赖项声明为静态。
static private EvenementPliRepository evenementPliRepository;
创建一个方法,以便Spring可以注入它。
@Autowired public void init(EvenementPliRepository evenementPliRepository) { MyListenerClass.evenementPliRepository = evenementPliRepository; logger.info("Initializing with dependency ["+ evenementPliRepository +"]"); }