Hibernate实体autowire
你可以请教我,我怎样才能很好地为Hibernate实体启用Spring自动assembly?
假设我有一个实体,并希望在那里有邮件发件人:
@Entity public class EmailActivity extends Activity { @Autowired @Transient private JavaMailSender javaMailSender; ... }
有没有比做更好的方法
AutowireCapableBeanFactory.autowireBean( getCurrentSession().get(Activity.class, id) );
在我的DAO?
谢谢!
有可能的! (这是Spring Roo的默认样式!)
您需要的只是将@Configurable注释添加到您的实体。 在配置
激活注释并使用AspectJ编织。
Spring Reference中有一章: 7.8.1使用AspectJ依赖Spring注入域对象
也可以看看:
- http://www.chrissearle.org/node/285
- http://www.olivergierke.de/wordpress/2009/05/using-springs-configurable-in-three-easy-steps/
顺便说一下,我强烈建议尽可能使用AspectJ编译时编织。
我这样做的方法是使用AutowiredAnnotationBeanPostProcessor。
在实体的构造函数中,您要求AutowiredAnnotationBeanPostProcessor注入“this”。
我在本文末尾的评论详述了该技术。 本文讨论了一种自动assemblyHibernate实体的类似方法。
似乎有一种比使用aspectj-weaving更好的方法,即使用hibernate LoadEventListener
,在本文中进行了解释。
- Spring @Autowired是按名称还是按类型注入bean?
- Spring – 如何注入具体的接口实现?
- spring – ApplicationContext registerBean自动assembly失败,但getBean在Spring 5中工作
- 如何在spring使用@Autowired
- 使对象弹簧管理
- 无法自动assembly字段:private org.springframework.security.core.userdetails.UserDetailsService
- 确保从非弹簧环境加载弹簧豆
- 无法让UserDetailsManager注入Spring Boot和基于Java的配置
- 带有Spring的EJB3