Springboot框架分controller层,service层和dao层,分别负责不同的业务。
- Controller层沟通前后端,注解为
@RestController
。 - Service层沟通DAO层和Ccontroller层,注解为
@Service
。 - DAO层沟通数据库和service层,注解为
@Repository
。
接下来讲一下每层的构成:
一般来说,对应每个实体(部件,比如说user),需要分别的一个Controller层,Service层,和DAO层给予对应,前两个层一般只有一个类,但在DAO层里面一般是一个接口UserDAO
和一个bean(实体类)UserDAOImpl
。这个接口(可以不要)负责确定数据连接层的方法,而bean就是直接用来连接数据库的一个实体类,必须implement接口UserDAO
并实现其中的方法。
反观 controller发起指令的流程:
因为Springboot所具有的的IoC的特点,数据先被从数据库注入DAO层里面的Repository,然后注入Service,通过引用的方法最后到达Controller,向前端发送。
有一些基础的Spring知识点
- 什么是Dependency(依赖)?当任意类X使用了类Y里面的方法,那么Y对于X来说就是一个依赖。
- 什么是Dependency injection(依赖注入)和Inversion of Control(控制反转)?这都是Springboot框架的特点,一般情况下用户通过主方法层层往下引用类,被引用的类只有当被引用了才会初始化,但是控制反转则不同,首先初始化最底层类,再向上引用,并逐层初始化添加了依赖的类。反转控制注入的位置需要通过注解
@Autowire
来添加,一般是方法的构造器。
感谢大家阅读到底,如有问题请立即指出