一、概念
1.Spring:是一个开源的轻量级的java开发框架。
2.SpringBoot:时用来简化Spring应用的初始搭建以及开发过程。
3.SpringMVC:Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
4.mybatis:Mybatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行封装,使开发者只需要关注sql本身。
二、框架的作用
1.SpringMVC作用:接收用户提交的数据,返回服务器的数据。(交互)
2.Spring作用:整合其他的第三方框架,可以让程序调用以一种统一的方式进行调用(整合)
3.Mybatis作用:整合JDBC方便用户与数据库进行交互(持久化)
4.SpringBoot作用:简化Spring等框架的操作(简化)。理解:SpringBoot就是一个框架的高级API
三、框架之间的关系
四、相关配置文件
1.pom.xml
(1)parent标签说明:是spring官网负责维护,在其中定义了几乎所有的框架与springboot兼容的版本信息。作用是为了集中定义版本号。
(2)dependencies标签:依赖:项目中需要添加什么功能,则依赖什么jar包。
(3)build标签:插件。
2.properties
(1)properties的语法是key-value结构,基本写法:key=value 不要写多余的空格。
(2)properties本身就是字符串的数据类型,所以无需添加引号。
(3)IDEA的设定是UTF-8,是IDEA读取的字符集的编码,但是properties在通过IO读取的时候,默认编码是ISO-8859-1.所以中文必定乱码,需要设定字符集。
2.YML
(1)数据结构 key-value结构,写法: key:(空格)value
(2)yml文件有层级结构,注意父子级的语法的缩进
(3)yml文件程序默认读取时采用UTF-8编码
五、高级用法
1.热部署说明
作用:添加依赖之后,代码修改不需要手动重启服务器,只需等待一会儿,就会自动更新。
2.lombok
作用:简化用户创建实体对象的过程,由插件自动完成实体对象中常用方法的构建(get、set、toString、构造等)
注解:1.@Data:以便为属性赋值get、set方法。@Accessors(chain=true)链式加载,set方法返回本对象来实现链式加载。
注意:在linux系统中运行项目,是否需要体检安装插件?不要,因为lombok在编译期有效,由xxx.java文件编译为xxx.class文件时,已经动态添加了set、get方法。所以在项目发布的时候(xxx.class文件组成的xxx.jar),lombok已经完成任务,所以不需要安装lombok环境。
六、springboot加载器顺序
1.当用户点击main方法时启动程序
2.SpringBoot程序开始加载主启动类上边的注解@SpringBootApplication(SpringBoot内部运行机制开始执行)
3.当SpringBoot程序开始执行,则会动态的获取当前主启动类的包路径。
4.通过包扫描的机制,将特定的注解标识的类(Controller、Service、Dao)。交给Spring容器管理。
5.Spring容器维护的是一个Map集合:key:类名首字母小写,value:实例化对象:
6.当对象创建时(实例化),遇到@Autowired 则需要依赖注入对象,当整个Spring容器内部都没有该对象时,则会报错,注入失败,如果Map中维护了需要注入的对象则@Autowired 注入成功,则最终对象实例化正常
7.当上述的操作都运行成功之后,则Spring容器启动成功,等待用户调用。
七、SpringBoot整合Mybatis核心
1.导包和编辑yml文件
2.为接口创建代理对象 注解:@Mapper 因为接口不能实例化对象,所以Spring就为接口创建了一个代理对象。
3.@MapperScan:SpringBoot为了简化代码,提供了包扫描机制,为包路径下的接口创建代理对象,之后交给Spring容器管理可以在任意位置依赖注入
4.mybatis实现数据查询时由2中写法:
1.将所有的sql语句都写在xml映射文件里。
2.可以将sql语句通过注解的方式标识在接口方法中
八、MybatisPlus
1.概念:Mybatis-Plus,简称MP,是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发,提高效率而生。使用MP主要完成单表的CURD操作简化开发。
2.注解:@TableName("demo_user") 实现对象和数据库表明的映射
@TableId(type = IdType.AUTO) 设置主键自增
@TableFIeld("name") 实现属性与字段的映射
规则:如果属性与字段的名字一致,则注解可以shenglve
3.在Mapper层的类中,继承接口BeanMapper,别忘了添加泛型对象,否则程序无法执行。
4.MybatisPlus中最重要的就是QueryWrapper类的方法,这个类封装了一些数据库的常见关键字和操作,然后将对象传递给相应的增删改查,就可以执行sql语句。
九、JSON格式
JSON(javaScript Object Notation)时一种轻量级的数据交换格式。采用完全独立于程序语言的文本格式。
1.对象格式:{"id":1,"name":"钢铁侠","age":200,"sex":"男"}
2.数组格式:["张三","李四","王五"]
3.嵌套格式:[{"id":1,"name":"钢铁侠","age":200,"sex":"男"},{"id":2,"name":"蜘蛛侠","age":50,"sex":"男"}]
十、Ajax
1.特点:局部刷新,异步访问
2.说明:Ajax是实现前后端交互,最为常用的一种方式
3.Ajax异步调用的原理:
同步:用户发起请求时,要求第一时间服务器做出相应,在此期间用户不可以做其他操作,只能等待服务器返回数据,刷新一次。
异步:用户发起请求时,要求服务器做出响应,在此期间用户可以做其他的操作,如果后端服务器返回数据则通过回调函数通知客户,局部刷新多次。
4.常见的请求类型
(1)GET
(2)POST
(3)PUT
(4)DELETE
5.关于Ajax总结:
Ajax是局部刷星,异步访问
Ajax异步的和兴在于Ajax引擎(代理)
AJax请求调用时无论是否成功,都通过回调函数的方式进行。sucess、error
Ajax参数传递的写法:对象写法,字符串拼接
for循环方式1.常规方式2.in3.of
6.跨域请求实现
需要添加@CrossOrigin的注解
十一、JS变量的基本用法
1.var关键字:var id;标识定义一个变量名称为id。该变量相当于在全局范围内声明了一个变量。该变量声明没有作用域的概念。弊端:由于没有作用域,导致变量使用混乱。
2.let关键字:从新版本呢的JS开始,兼容支持let,该关键字的用法与var一样,但是有作用域的范围,更加通用。
3.const关键字:该关键字用来标识常量,该数据不变。
十二、跨域说明
1.同源策略
规定:浏览器的网址与Ajax请求网址必须满足同源策略,浏览器才能解析Ajax,执行正确的请求。
2.规定要求:请求协议://域名:端口号
如果三者都满足,则符合同源策略。浏览器可以正确解析。反之,不满足同源策略,称为跨域请求,则浏览器不能正常解析ajax请求。
练习:
浏览器地址: http://localhost:8090/userList.html
Ajax请求地址: http://localhost:8090/abc/b 满足同源策略
浏览器地址: http://localhost:80/userList.html
Ajax请求地址: http://localhost:8090/abc/b 端口不同 跨域请求
浏览器地址: http://localhost:8090/userList.html
Ajax请求地址: https://localhost:8090/abc/b 协议不同,跨域请求
manage.jt.com 对应的IP假设为10.6.6.8
浏览器地址: http://manage.jt.com/userList.html
Ajax请求地址: http://10.6.6.8/abc/b 跨域请求 域名不同(即使映射也是跨域)
浏览器地址: http://manage.jt.com:/userList.html http协议默认端口80
Ajax请求地址: http://manage.jt.com:80/aaa/bbb 同域请求
3.CORS介绍:
CORS时一个W3C标准,全称是跨域资源共享。