SpringBoot三层 架构+分层解耦---代码的耦合内聚

时间:2024-10-11 11:32:36

分层解耦—代码的耦合内聚

一、三层架构

Java的三层架构是一种常见的软件架构设计模式,用于将应用程序的不同功能和责任分配到不同的层级,以提高可维护性、可扩展性和可重用性。
它可以包括以下三个层级:
1.表现层:也称为用户界面层,负责与用户进行交互,并将用户的请求发送到其他层进行处理。
2.业务逻辑层:也称为服务层或控制层,包含应用程序的核心业务逻辑。它接收来自表现层的请求,处理数据逻辑、业务规则和算法,并协调多个数据访问的操作。在Java中,可以使用POJO(Plain Old Java Object)或Spring框架的服务层来实现业务逻辑层。
3.数据访问层:也称为持久层或数据层,负责处理数据的持久化和访问。它与底层数据库进行交互,执行数据的读取、写入和更新操作。在Java中,可以使用JDBC(Java Database Connectivity)或ORM(Object-Relational Mapping)框架(如Hibernate)来实现数据访问层。

使用三层架构的优点
明确的职责划分、降低模块之间的耦合度、提高代码的可重用性和可测试性。此外,它还为不同层级的开发人员提供了分工合作的便利,并促进了代码的维护和扩展。

下面我们来进一步了解一下三层架构在代码中的样子

在这里插入图片描述

  • 数据访问 : 负责业务数据的维护操作,包括增、删、改、查操作
  • 逻辑处理 :负责业务逻辑代码的处理
  • 请求处理、响应数据:负责,接收页面的请求,给页面响应

上述大致可以分为三部分
在这里插入图片描述

  • Controller:接收前端发送的请求,对请求进行处理,并响应数据
  • Service:处理具体的业务逻辑
  • Dao:负责数据的访问操作,包含数据的增删改查

大致过程为:
浏览器发送请求,控制端(Controller)接收请求处理,并做出响应发送给服务端(Service),服务端进行数据的逻辑处理后发送给数据层(Dao),数据层在数据库中查找数据后返回服务层,服务层接收数据后发送给控制层,控制层再返回给浏览器,供客户端阅读。

各层代码如下:

//Controller
@RestController
public class UserController {
   
    private UserServiceA userService = new UserServiceA();
    @RequestMapping("/listUser")
    public Result listUser() throws Exception {
   
        // 调用service, 获取数据
        List<User> userList = userService.listUser();
        // 响应数据
        return Result.success(userList);
    }
}

@RestController:标记类注解,结合了@Controller 和 @ResponseBody注解的功能

@Controller:用于标记一个类,表示这个类是一个控制器,用于处理用户的请求和响应
@ResponseBody:用于标记一个方法,表示该方法返回的结果将被直接写入HTTP响应体中,而不是被解析为视图名称
@RestController:使用 @RestController 注解标记的类,可以简化返回 JSON 或 XML 数据的操作,因为它会自动将方法返回的对象转换为相应的格式,并写入响应体中。这样,我们就不需要在每个方法上再添加 @ResponseBody 注解了。

//Service
public class UserServiceA {
   
    private UserDaoA userDao = new UserDaoA