现在Java项目一般都是用Spring全家桶开发,以web项目来讲结构主要分为Controller层、Service层和DAO层,细分的话有的项目可能还会有一个Manager层。

一个请求到达后端之后会根据请求的路径找到对应的Controller,Controller会调用相应的业务Service,Service会调用DAO,DAO去执行具体数据库查询操作。

同时DAO返回数据到Service,数据经过Service组装成合适的形式之后返回给Controller,最终Controller对外返回请求结果。

java业务层如何设计 java的业务逻辑是什么_java业务逻辑

Controller层

首先,Controller主要负责处理对应的请求,在Controller层我们可以做一些基础的参数校验的工作,比如参数是否为空、格式是否正确等。

其次,Controller还有一个职责就是需要正确处理Service层抛出的异常。

最后,Controller负责将最终结果返回给调用方。

当然在Controller里也不是只能调用Service,就我自己平时写代码的习惯来讲,对于一些简单的查询操作,我会在在Controller里直接调用DAO,因为业务逻辑很简单没必要再用Service封装一层。

Service层

Service通常来讲就是业务层,主要用来处理复杂的业务逻辑,并对DAO返回的数据进行组装,使之符合接口定义的数据格式。

一些需要数据库事务支持的业务逻辑也会放在Service层处理,比如一个创建订单业务逻辑,我们需要保证创建订单和扣减库存两个操作要么都成功要么全失败,那么此时我们就可以这两个操作封装到一个Service方法里保证整体业务的事务性。

对于Service层出现的异常或是逻辑判断出错,我通常是直接抛出异常,因为如果在Service里catch了异常会导致数据库事务回滚出现问题。

DAO层

一般来讲DAO层主要负责与数据库交互,一个DAO类通常对应数据库中的一张表,DAO中是一些基础的增删改查方法。

我们在DAO层一般不会对数据进行额外处理,在开发实践中不同的Service可以根据自身的业务调用不同的DAO返回数据并进行组装。

总结

Java项目结构一般分为Controller层、Service层和DAO层;Controller层主要负责参数校验,处理Service抛出的异常以及返回最终数据;Service层主要负责处理一些复杂的业务逻辑或者是需要事务支持的业务,另外还负责对DAO数据进行封装;DAO层主要负责与数据库的交互操作。