java web dao层_java web 中web层直接调用dao层 可以吗?

这个就跟Service直接用Java类还是用Interface/Implementation一样。关键是你自己认为是否合理,团队是否有严格要求。

为了说明这个问题,我在网上找了一些图。

web层,业务层,持久层,总体上是这样的关系:

再稍微详细点,是这样:

有一篇文章专门讲到这个2.4. Application Layering​terasolunaorg.github.io00cee88c18fcb81927ad8bd0f243ea77.png

下面简单总结一下这篇文章的思想。

在Spring架构里,是这样:

圆形代表Interface,长方形是Class

如果再考虑进去依赖注入,是这样:

上面这些图都没有直接告诉你Controller可以调用Repository(DAO)。甚至还能给出这个调用参考表:你发现了吗?Controller调用Repository是个X,就是不允许。而且Service调用Service都是警告。

Service调用Service会带来相互依赖问题,事务也不好处理。

原文对上面这个表有一段补充说明:It may be difficult to follow the above rules at the initial phase of application development. If looking at a very small application, it can be created quickly by directly calling the Repository from Controller.

翻译一下:

在应用开发的初始阶段,很难遵循上面的规则。如果是一个很小的应用,让Controller调用Repository会更加快速便捷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值