将 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);
    }

}

这是我的实体类:

 @RooJavaBean
@RooToString
@RooJpaActiveRecord
@EntityListeners(PliListener.class)
public class Pli implements Serializable{
...

但是,我的依赖项(即 evenementPliRepository始终为 null

有人可以帮忙吗?

原文由 balteo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 698
1 个回答

在无状态 bean 上注入依赖项的一种技巧是将依赖项定义为“静态”,创建一个 setter 方法,以便 Spring 可以注入依赖项(将其分配给静态依赖项)。

将依赖项声明为静态的。

 static private EvenementPliRepository evenementPliRepository;

创建一个方法,以便 Spring 可以注入它。

 @Autowired
public void init(EvenementPliRepository evenementPliRepository)
{
    MyListenerClass.evenementPliRepository = evenementPliRepository;
    logger.info("Initializing with dependency ["+ evenementPliRepository +"]");
}

更多详细信息,请访问:http: //blog-en.lineofsightnet.com/2012/08/dependency-injection-on-stateless-beans.html

原文由 Juan Jimenez 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题