【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
经典的Javaweb设计都是分controller,service,dao三层,目的是为了解耦三层的逻辑。
原则上dao层实现从jdbc变为mybatis或hibernate都不需要更改控制器层与service层逻辑。
但实际上不可避免地将service层与dao层耦合了。比如在service层中使用了SQL条件的封装对象,如hibernate的criteria,mybatis的example,或SQL page分页对象。又例如mybatis plus定义的basemapper接口,如果在service层调用mapper就等于耦合了basemapper
想问问大佬们,你们是如何设计项目结构的
具体情况具体分析。
未来在架构上不会涉及变动的情况下,使用侵入式框架而增加了耦合度其实也没有太大问题。而且通常dao层不会涉及框架替换,因为比较成熟的这些框架通常能够支持绝大部分业务变动的需求。