休眠和春天的关系
Posted
技术标签:
【中文标题】休眠和春天的关系【英文标题】:Relation betweenn hibernate and spring 【发布时间】:2013-04-19 16:32:10 【问题描述】:我有一个关于 spring + hibernate 的问题 我总是使用休眠进行开发,我生成表和 DAO 类的图像 然后在 logic metier 我对这些方法进行简单的调用 dao ....
例如 UserDao=new UserDao () 然后 userdao.persist() ...
现在我有intgret spring,但我还不明白..
1
知道自己也在打电话的情况下加什么加分 有 dao 服务(手动写的)它不会生成 类 dao 与休眠
2
是不是有了春天我就不用担心管理会话了 例如打开会话,关闭会话 commit() ...
提前谢谢你我想有一个想法Ccool:
【问题讨论】:
【参考方案1】:Spring 的核心是一个依赖注入框架。这意味着,而不是做
public class MyService
private MyDao dao;
public MyService()
dao = new MyDao();
你可以的
public class MyService
private MyDao dao;
@Autowired
public MyService(MyDao dao)
this.dao = dao;
而Spring会自动调用构造函数并注入一个MyDao的实例。主要好处是代码很容易进行单元测试。
最重要的是,它允许直接注入代理而不是实际的实现。这些代理确实会为您处理事务管理,以及更多(异常翻译、安全检查等)。
因此,您无需显式打开、提交和回滚事务,只需使用@Transactional
注释服务方法,Spring 就会打开、提交/回滚事务。并且事务上下文会自动传播到嵌套的服务调用。
这个简短的回答只是为了给你一个想法。要了解更多信息,请阅读依赖注入,并阅读 Spring 文档。
【讨论】:
【参考方案2】:使用 Spring 注解,例如 @Service
用于服务类,@Repository
用于 Dao 类,@Controller
用于操作控制器。在服务类或方法上使用@Transactional
足以执行事务。
【讨论】:
以上是关于休眠和春天的关系的主要内容,如果未能解决你的问题,请参考以下文章