0

我有一个关于 spring + hibernate 的问题我总是使用 hibernate 进行开发,我生成表和类 DAO 的图像然后在逻辑层我对这些方法进行简单调用 dao ....

例如 UserDao=new UserDao () 然后 userdao.persist() ...

现在我有 intgret spring,但我还不明白..

1

他知道他也在打电话有什么好处有dao服务(手动的着作)它不会用hibernate生成类dao

2

是春天我不会担心管理会话,例如打开会话,关闭会话提交()......

提前谢谢你我想有一个想法Ccool:

4

2 回答 2

3

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 文档。

于 2013-04-19T17:02:43.003 回答
1

@Service对服务类、@RepositoryDao 类和@Controller动作控制器使用 Spring 注释。使用@Transactional服务类或方法足以执行事务。

于 2013-04-19T17:51:48.527 回答