DAO层、ENTITY层、SERVICE层、CONTROLLER层个人的理解分析

转自:https://blog.csdn.net/warpar/article/details/67638379

DAO层、ENTITY层、SERVICE层、CONTROLLER层

1、DAO层: 持久层  主要与数据库进行交互

   DAO层主要是做数据持久层的工作,主要与数据库进行交互。DAO层首先会创建DAO接口,然后会在配置文件中定义该接口的实现类,
   接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理,并且不用关注此接口的具体实现类是哪一个类。DAO 层的数据源和数据库连接的参数数都是在配置文件中进行配置的。
   
2、Entity层(domain层) 实体层   数据库在项目中的类

3、Service层(biz):业务层  控制业务

   Service层主要负责业务模块的逻辑应用设计。和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。
   封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

4、Controller层:(action层) 控制层  控制业务逻辑

   Controller层负责具体的业务模块流程的控制,controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也需要在配置文件中进行。

5、View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示,

Conroller层和Service层的区别是:Controlle层负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计;
   
总结:在具体的项目中,其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Entity层进行传递的。

### DAOControllerService的区别与职责 #### 1. **DAO** 数据访问(Data Access Object, DAO)是软件架构中最底的部分,其主要职责是与数据库或其他持久化存储方式进行交互。具体来说,DAO负责执行所有的数据库操作,包括但不限于增删查改(CRUD)。通过将这些操作封装到DAO中,可以实现业务逻辑与数据存储细节之间的解耦[^3]。 - 主要职责: - 执行具体的数据库操作。 - 提供统一的数据访问接口。 - 将复杂的SQL语句或ORM映射隐藏起来,简化上调用。 - 特点: - 不涉及任何业务逻辑。 - 只关注数据的存取和修改。 ```java public interface UserDao { User findById(int id); // 查询 void save(User user); // 插入/更新 void deleteById(int id); // 删除 } ``` --- #### 2. **Controller** 控制Controller)位于架构的最外,直接面向用户或外部请求。它的主要任务是接收用户的输入,并将其转发给相应的服务进行处理,最终将处理结果返回给用户。控制器的设计通常遵循MVC模式中的C(Controller),专注于请求处理和数据转发,而不包含任何业务逻辑[^3]。 - 主要职责: - 接收HTTP请求并解析参数。 - 调用Service完成业务逻辑处理。 - 返回响应数据给前端界面。 - 特点: - 是系统的入口,负责对外部请求的第一步处理。 - 需要处理异常情况并向客户端反馈错误信息。 ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") public ResponseEntity<User> getUser(@PathVariable int id) { User user = userService.findById(id); if (user != null) { return ResponseEntity.ok(user); } else { return ResponseEntity.notFound().build(); } } @PostMapping("/") public ResponseEntity<Void> createUser(@RequestBody User user) { userService.save(user); return ResponseEntity.status(HttpStatus.CREATED).build(); } } ``` --- #### 3. **Service** 业务逻辑Service)是三架构的核心部分,承担着处理应用程序核心业务逻辑的任务。这一解释用户的请求,执行必要的业务计算,调用数据访问进行数据持久化操作,并返回执行结果。通过将业务逻辑集中在此,能够提高代码的可重用性和一致性[^3]。 - 主要职责: - 实现业务逻辑的具体处理。 - 调用DAO完成数据的操作。 - 对多个DAO方法的结果进行组合和加工。 - 特点: - 包含了大部分的应用程序逻辑。 - 是连接ControllerDAO的关键桥梁。 ```java @Service public class UserService { @Autowired private UserDao userDao; public User findById(int id) { return userDao.findById(id); } public void save(User user) { validateUser(user); // 自定义验证逻辑 userDao.save(user); } private void validateUser(User user) { if (user.getName() == null || user.getName().isEmpty()) { throw new IllegalArgumentException("用户名不能为空"); } } } ``` --- ### 总结 在典型的三架构中,各之间分工明确,彼此协作以完成完整的功能需求: - **DAO**:专注数据的存取操作,提供稳定的API支持。 - **Controller**:作为系统与外界交互的门户,负责请求分发和结果呈现。 - **Service**:承载业务逻辑的核心,协调其他两的工作。 这种分设计不仅有助于提升代码的复用性,还显著增强了项目的可维护性和扩展能力[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值