文章目录
spring入门
spring全家桶
-
spring Framework – 框架,spring的基石
- spring code – spring 核心
spring 就是牛在这里: IOC 和 AOP,这是用来管理对象的思想,有spring用来管理的对象叫做bean,ioc是基于对象来管理bean的思想,而aop是一种面向切面编程的思想,总之spring有了这两种思想就能管理一切bean。及将其他框架拿过来,就能对其进行整合。
那么什么是springioc呢?
答:spring ioc 就是控制反转+依赖注入+ioc容器的简写,其中控制反转是一种面向对象编程的设计思想(如我们不用ioc,来new两个对象A B,然后a.set传入b,这样A和B就有了联系,可以通过a去调用b。但是当需要去改a时要去改b,这样耦合性太高)、依赖注入是ioc思想的实现方式、ioc容器是实现依赖注入的关键,本质上是一个工厂。 - spring data access — spring来访问数据库的功能
transactions:用它来管理事物,spring mybatis:来整合mybatis - web servlet ---- web开发
采用spring mvc - integration ---- 集成
用来发送email、做定时任务(scheduling)、做消息队列(AMQP)、做安全控制(security)
- spring code – spring 核心
-
spring boot — 可以利用它构建项目,用于基本项目开发
-
spring cloud — 微服务,如果项目比较大,需要将其进行拆分
-
spring cloud data flow —
总结:
开发中一般我们的后台会创建 controller、dao、service几个模块,controller用来处理浏览器的请求,在处理浏览器的请求过程中会调用业务组件(service),让service去处理当前的业务,之后业务组件会去调用dao去访问数据库。他们之间彼此互相依赖,之间的依赖关系可以使用依赖注入的方式去实现
SpringMVC入门
HTTP协议
- 超文本传输协议
- 用于传输 HTML 等内容的应用层协议
- 规定了浏览器和服务器之间如何通信,以及通信时的数据格式
SpringMVC
- 服务端的代码是一个三层架构:表现层,业务层,数据访问层
浏览器访问服务器,首先访问的是表现层,期待表现层给它返回一些数据,而表现层调用的是业务层,对浏览器请求的业务进行处理,在处理业务的过程中调用的是数据访问层,由数据访问层来访问数据库。业务层和数据层的调用和访问可能都是多次的。最终表现层得到业务层的反馈之后,经过一些调整反馈给浏览器
- MVC(主要解决的是表现层的事情) — 是一种设计模式,理念是将复杂的代码分为三个层次
- Model:模型层(数据层)
- View:视图层 :利用model数据,生成一个HTML,反馈给浏览器
- Controller:控制层 : 用来处理浏览器的请求,根据请求调用业务层,然后根据反馈的数据封装到model中,然后把它传给视图层
- 核心组件
- 前端控制器:DispatcherServlet
无论是表现层中的Controller还是View都是通过这个前端控制器去调度的
1). 当DispatcherServlet接到请求时,他先回查找适当的处理程序来处理请求。DispatcherServlet通过一个或者多个处理程序映射,将每个请求映射到处理程序中。处理程序映射配置在web应用程序的上下文中,是实现了HandlerMapping接口的Bean。它负责为请求返回一个适当的处理程序(也就是Controller)。处理程序映射通常根据请求的URL将请求映射到处理程序(Controller)。
2). 一旦DispatcherServlet选择了适当的控制器,它就会调用这个控制器来处理请求。
3). 控制器处理完请求后,会将模型和视图名(有时候是视图对象)返回给DispatcherServlet。模型包含了控制器要传递给视图进行显示的属性。如果返回的是视图名称,它会被解析成视图对象再进行呈现。绑定模型和视图的基本类是ModelAndView
4). 当DispatcherServlet接收到模型和视图名称时,它会将逻辑视图名称解析成视图对象再进行呈现。DispatcherServlet从一个或者多个视图解析器中解析视图。视图解析器配置在Web应用程序上下文中,是实现了ViewResolver接口的Bean。它的任务是根据逻辑视图名称返回试图对象。
5). 一旦DispatcherServlet将视图名称解析称为试图对象,它就会呈现视图对象,并传递控制器返回的模型。视图的任务是将模型属性展示给用户。
Thymeleaf
- 模板引擎:
– 生成动态的HTML。 - Thymeleaf
– 倡导自然模板,即以 HTML 文件为模板 - 常用语法
– 标准表达式、判断与循环、模板的布局
代码归属:
SpringMVC解决的是视图层的问题,而视图层第一个是写的Controrller,Controller会组织数据封装到model中,model这个类本来就有,不需要写。另外,模板引擎需要写模板,模板放在 resources --> templates 中
Mybatis入门 — 注:在这里存在对于数据库表的讲解
安装MySQL服务器
安装MySQL可视化软件
MyBatis
-
核心组件(在实际的开发中前三个可以不用去写代码,因为我们是在springboot的环境下去开发的,springboot会自动的去初始化Factory,自动的去创建SqlSession,自动的去整个XML配置文件)
– SqlSessionFactory:用于创建SqlSession的工厂类。
– SqlSession:MyBatis的核心组件,用于向数据库执行SQL。
– 主配置文件:XML配置文件,可以对MyBatis的底层行为作出详细的配置。
– Mapper接口:就是Dao接口,在MyBatis中习惯性的称为Mapper。
– Mapper 映射器:用于编写SQL,并将SQL和实体类映射的组件,采用XML、注解均可实现。
注:(映射器)当我们使用MyBatis去访问数据库我们只需要去写出接口,不需要去写出实现类,他们的底层会自动帮我们去实现接口,前提是要把每一个CRUD的方法告诉它,不然它也不知道要去干啥。 -
示例
– 使用MyBatis对用户表进行CRUD操作
mybatis中文:http://mybatis.org/spring/zh/index.html
mybatis-plus:https://mp.baomidou.com