自动连接到hibernate拦截器

我正在扩展hibernate.EmptyInterceptor,在我的实现中,我希望自动连接到某些服务,但它们返回null。 我在类上添加了@Component注释。 我的代码:

         

和class级:

 @SuppressWarnings("serial") @Component public class AuditInterceptor extends EmptyInterceptor { @Autowired private IUserSessionService userSessionService; 

我知道这可能要晚了两年 – 但我正在寻找同样问题的答案,并认为这对未来的某些人有用。

看看Hibernate代码看起来如果给出类名,Hibernate将实例化拦截器的新实例,但是如果传入bean实例引用,它将使用它。

所以

  

            

现在bean myInterceptor是Spring管理的,自动assembly将工作!

Spring 永远不会@Autowired目标保留为null (除非null是您正在注入的)。 这应该告诉你,如果@Autowired字段为null ,那么Spring与它无关。

这似乎就是这种情况。 通过提供类似的东西

  

我相信你告诉Hibernate创建该实例本身,因此它不会是一个Spring托管bean。

如果你发布剩余的bean定义,因为我不知道你想要注入什么bean,可能有其他选择。