当前位置: 首页> 汽车> 车展 > SpringBoot三层架构

SpringBoot三层架构

时间:2025/7/10 8:29:08来源:https://blog.csdn.net/2302_77758423/article/details/139723324 浏览次数: 0次

目录

一、传统方式

 二、三层架构

 三、代码拆分

1、dao层

2、service层

3、control层

四、运行结果


一、传统方式

          上述代码存在一定的弊端,在进行软件设计和软件开发中提倡单一责任原则,使代码的可读性更强,复杂性更低,可扩展性更好,更好的进行维护。所以也就有了三层架构的概念。

 二、三层架构

controler:控制层,接收前端发送的请求,对请求进行处理,并响应数据。

service:业务逻辑层,处理具体的业务逻辑。

dao:数据访问层(data access Object(持久层)),是负责数据访问操作,包括增、删、改、查。

 

 三、代码拆分

1、dao层

        首先在dao包下创建一个接口,这个接口名为EmpDao。(接口不能被实例化,只能被类实现。实现接口必须实现接口中的所有方法,除非该类本身是抽象类。方法不能包含方法体,接口中的方法隐式的被声明为共有抽象方法,即默认具有public abstract修饰符)

public interface EmpDao {
//    获取员工数据public List<Emp> listEmp();
}

        然后在dao包下创建imp包,再创建接口的实现类EmpDaoA。

public class EmpDapA implements EmpDao {@Overridepublic List<Emp> listEmp() {//1. 加载并解析emp.xmlString file = "src/main/resources/emp.xml";System.out.println(file);List<Emp> empList = XmlParserUtils.parse(file, Emp.class);return empList;}
}

        为什么要创建接口,然后过实现类实现,而不是直接创建类去实现?为了提高代码的可维护性、扩展性和复用性,解耦,我进行数据访问的方式时不一样,为了代码更加的灵活,所以使用的接口。

2、service层

EmpService.java

public interface EmpService {
//    获取员工列表public List<Emp> listEmp();
}

EmpServiceA.java 

public class EmpServiceA implements EmpService {private EmpDao empDao=new EmpDapA();@Overridepublic List<Emp> listEmp() {//1. 调用dao,获取数据List<Emp> empList = empDao.listEmp();//2. 对数据进行转换处理 - gender, jobempList.stream().forEach(emp -> {//处理 gender 1: 男, 2: 女String gender = emp.getGender();if("1".equals(gender)){emp.setGender("男");}else if("2".equals(gender)){emp.setGender("女");}//处理job - 1: 讲师, 2: 班主任 , 3: 就业指导String job = emp.getJob();if("1".equals(job)){emp.setJob("讲师");}else if("2".equals(job)){emp.setJob("班主任");}else if("3".equals(job)){emp.setJob("就业指导");}});return empList;}
}

        service层是处理具体的业务逻辑。它处理的数据是从dao层获取的,所有在EmpServiceA类中需要定义一个EmpDao对象用来获取处理数据。在EmpServiceA类中的方法中通过EmpDao实例对象方法获取数据。

3、control层

EmpController.java

@RestController
public class EmpController {private EmpService empService=new EmpServiceA();@RequestMapping("/listEmp")public Result list(){
//       调用service,获取数据List<Emp> empList = empService.listEmp();//3. 响应数据return Result.success(empList);}
}

         @RestController是Spring框架中的一个注解,用于标记一个类作为RESTful Web服务的控制器。它结合了@Controller和@ResponseBody两个注解的功能,使得该类中的方法可以直接返回JSON或XML等格式的数据,而无需手动添加@ResponseBody注解。

四、运行结果

如果程序没有出错会有如下结果

关键字:SpringBoot三层架构

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: