【问题标题】: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:

【问题讨论】:

    标签: spring hibernate


    【解决方案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 足以执行事务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-23
        • 2013-01-29
        • 2014-10-09
        • 2010-10-06
        • 2011-07-13
        • 1970-01-01
        • 1970-01-01
        • 2013-04-01
        相关资源
        最近更新 更多