将Spring依赖项注入JPA EntityListener
我试图将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。
回答:
注入对无状态bean的依赖关系的一种方法是将依赖关系定义为“静态”,创建一个setter方法,以便Spring可以注入依赖关系(将其分配给静态依赖关系)。
将依赖项声明为静态。
static private EvenementPliRepository evenementPliRepository;
创建一个方法,以便Spring可以注入它。
@Autowiredpublic void init(EvenementPliRepository evenementPliRepository)
{
MyListenerClass.evenementPliRepository = evenementPliRepository;
logger.info("Initializing with dependency ["+ evenementPliRepository +"]");
}
以上是 将Spring依赖项注入JPA EntityListener 的全部内容, 来源链接: utcz.com/qa/426507.html