Springboot各个层之间的联系

241 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第21天,点击查看活动详情

Springboot各个层之间的联系

Springboot框架分controller层,service层和dao层,分别负责不同的业务。

Controller层沟通前后端,注解为@RestController。

Service层沟通DAO层和Ccontroller层,注解为@Service。

DAO层沟通数据库和service层,注解为@Repository。

View层Controller层(响应用户请求)Service层(接口接口实现类)DAO层,即Mapper层(抽象类:xxxMapper.java文件,具体实现在xxxMapper.xml)Model层(实体类:xxx.java)

entity层/model层/pojo层/domain层: 存放的是实体类,属性值与数据库中的属性值保持一致。 实现set和get方法。 一般数据库一张表对应一个实体类,类属性同表字段一一对应。

dao层:即mapper层, 对数据库进行持久化操作,他的方法是针对数据库操作的,基本用到的就是增删改查。它只是个接口,只有方法名字,具体实现在mapper.xml中。 dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。

service层: 业务层, service层即业务逻辑层。 service层的作用为完成功能设计。 service层调用dao层接口,接收dao层返回的数据,完成项目的基本功能设计。

controller层: 控制器层, 导入service层,调用service方法,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。表单等交互动作的处理,调到Service,将Service层的数据对象返回到视图层 controller层即控制层。 controller层的功能为请求和响应控制。 controller层负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端。

再来看一看Spring的IOC

IoC(Inversion of Control) (1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于Spring而言,就是由Spring来控制对象的生命周期和对象之间的关系;IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件之中。

(2). 在Spring的工作方式中,所有的类都会在spring容器中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。

(3). 在系统运行中,动态的向某个对象提供它所需要的其他对象。

(4). 依赖注入的思想是通过反射机制实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。 总而言之,在传统的对象创建方式中,通常由调用者来创建被调用者的实例,而在Spring中创建被调用者的工作由Spring来完成,然后注入调用者,即所谓的依赖注入or控制反转。 注入方式有两种:依赖注入和设置注入;