Java项目如何分层

本文探讨了Java项目中常见的Controller、Service、Dao三层架构存在的问题,并建议在项目稳定或有时间思考时,明确各层职责,提出了一种包含Web层、Service层、Manager层、DAO层的分层模式。此外,还介绍了阿里巴巴的分层规范,包括DO、DTO、BO、QUERY、VO等数据模型,强调了根据项目实际情况选择合适风格的重要性。
摘要由CSDN通过智能技术生成

在现在的Java项目中的项目分层,大多数都是简单的Controller、Service、Dao三层,看起来非常简单。

但是,随着代码越写越多,写久了以后,渐渐发现其实并没有把他们真正的职责区分开来,大多数情况下,Controller只是简单的调用Service中的方法,然后就返回;Service之间组合起来处理业务逻辑,甚至有时候Service页只是Dao层的一次简单透传转发。在项目庞大,追求快速发展的情况下,往往不会过于在乎这些细节,所以大部分人都觉得无所谓了,能用就行,久而久之,层级关系逐渐混乱,维护起来就会觉得挺头疼,而且后续如果要扩展业务功能的时候也无法复用。

在很多人眼里,分层这个都无所谓的,新建一个项目的时候都是从一个项目拷过来,反正能运行就行,大家都是这么写,我也这么写就好了,先跑起来再说。

然而每个人的习惯都不一样,有的人习惯在Controller中写一大堆业务逻辑,有的人习惯在Controller里返回Service层的调用,去改别人代码的时候就会很纠结,究竟使用什么风格好呢?特别是一些其他语言转过来的新手往往会疑惑,究竟Controller、Service、Dao这些的区别是什么?应该怎么布局代码呢?当看到代码里的Service大部分都是Dao的封装,就会觉得在Controller里面调用各个Service的方法来处理业务逻辑也是没毛病的。


本人不会觉得任何一种做法有任何问题的,以笔者自己亲身经历而言,项目要快速发展或者开发压力较大的情况下,绝对不会反对,也不会嘲笑任何一种做法,但是等到项目稍微稳定或者有时间停下来思考的时候,可以认真思考一下各个层之间的职责和关系,制定一个约定俗成的风格,大家遵循这种风格开发。个人认为风格是没有绝对的好与坏,只要团队里大家统一,那就可以了。


讲了那么多文字,先来点代码更实际一点。以笔者个人比较倾向使用的应用分层,通过以下代码示例来介绍一个好的分

Java项目分层可以采用以下三层架构: 1. 表现层:主要负责与用户交互,接收用户的请求,将请求传递给业务层,最终将结果呈现给用户。常见的表现层框架有Spring MVC、Struts2等。 2. 业务层:主要负责处理业务逻辑,包括数据的处理、计算、验证、转换等。业务层通常通过调用数据访问层获取数据,并将处理结果返回给表现层。业务层也可以通过调用其他服务来完成业务逻辑。常见的业务层框架有Spring、MyBatis等。 3. 数据访问层:主要负责与数据库交互,包括数据的增删改查、事务管理等。数据访问层通常使用ORM框架来简化数据访问操作,如Hibernate、MyBatis等。 在具体实现时,可以按照以下步骤进行: 1. 创建三个不同的包分别用于存放表现层、业务层、数据访问层的代码。 2. 在表现层中编写控制器类,用于接收用户请求并将请求传递给业务层。 3. 在业务层中编写服务类,用于处理业务逻辑,调用数据访问层获取数据,并将处理结果返回给表现层。 4. 在数据访问层中编写数据访问类,用于与数据库进行交互,包括数据的增删改查、事务管理等。 5. 在配置文件中进行相关配置,如Spring配置文件、MyBatis配置文件等。 6. 在项目中引入相关框架和依赖,如Spring框架、MyBatis框架等。 通过以上步骤,可以将Java项目分层,实现代码的高内聚、低耦合,提高代码的可读性、可维护性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值