springboot和vue写个小项目

遵循“约定优于配置”的原则,只需要很少的配置或使用默认的配置。
能够使用内嵌的Tomcat、Jetty服务器,不需要部署war文件。
提供定制化的启动器Starters,简化Maveni配置,开箱即用。
纯)java配置,没有代码生成,也不需要XML配置。
提供了生产级的服务监控方案,如安全监控、应用监控、健康检测等。springboot和vue写个小项目_第1张图片

 setting里配置mavenspringboot和vue写个小项目_第2张图片

现在来看controller的用途

springboot和vue写个小项目_第3张图片

 啥是热部署springboot和vue写个小项目_第4张图片

springboot和vue写个小项目_第5张图片 

 在properties文件里配置devtoolsspringboot和vue写个小项目_第6张图片

 如果我们使用idea还需要继续设置springboot和vue写个小项目_第7张图片

springboot和vue写个小项目_第8张图片 

springboot和vue写个小项目_第9张图片 

 新版automake这个设置在 settings advance setting 下面

springboot和vue写个小项目_第10张图片

关于控制器相关概念

来两个注解 springboot和vue写个小项目_第11张图片

springboot和vue写个小项目_第12张图片 

前后端分离一般用@RestController 

@RestController返回的数据呢,就是以文本形式交给前端,前端再对数据进行处理,后端不会涉及到前端的内容         springboot和vue写个小项目_第13张图片

 springboot和vue写个小项目_第14张图片

 springboot和vue写个小项目_第15张图片

springboot和vue写个小项目_第16张图片 

 默认就是get请求

那前端传参数进来我如何接收呢?springboot和vue写个小项目_第17张图片

 springboot和vue写个小项目_第18张图片

 

springboot和vue写个小项目_第19张图片

 springboot和vue写个小项目_第20张图片

 post请求参数可以放到url后面也可以放到请求body里面springboot和vue写个小项目_第21张图片

 

如果是参数特别多,比如注册的使用场景,那我们要封装一个软件工程里的实体概念,搞个user类接受的参数就是类的属性

springboot和vue写个小项目_第22张图片

 springboot和vue写个小项目_第23张图片

 此外名称类型也要保持一致

springboot和vue写个小项目_第24张图片

 

静态资源设置springboot和vue写个小项目_第25张图片

默认有映射 

springboot和vue写个小项目_第26张图片 

 

 

前端要是传头像的话要用到文件上传springboot和vue写个小项目_第27张图片

 在前端要有对应的表单,enctype改成formdataspringboot和vue写个小项目_第28张图片

 

springboot和vue写个小项目_第29张图片

 springboot和vue写个小项目_第30张图片

 上传功能:将用户传来的文件存储到web服务器的本地springboot和vue写个小项目_第31张图片

 springboot和vue写个小项目_第32张图片

 springboot和vue写个小项目_第33张图片

 springboot和vue写个小项目_第34张图片

 我们可以打印出动态的路径,这个路径是idea自己分配的,打包部署之后他的路径就不会变化了,想要方便调试的话,可以把path改成固定的C盘,我们怎么存储它呢?我们自定义一个方法,然后把文件和路径传递给这个方法,在这个方法里面,我们做一个判断,创建一个JAVA的file这个对象,通过这个对象,我们把路径传给他,判断这个路径到底存不存在?如果不存在的话(第一次运行的时候upload肯定不存在,但是request.getServletContext()这个服务器运行路径是存在的,就创建这个upload目录         然后再创建一个文件,这个文件对象代表我们最终要存储的文件,把路径和文件原始名称加上拼接出完整路径,利用multipartfile对象的transferto方法把网络上传过来的文件存到上面的完整路径当中

那用户如何访问自己上传的图片呢

springboot和vue写个小项目_第35张图片springboot和vue写个小项目_第36张图片

 

 改下静态资源的路径

但是记得把这个删掉啊不然后续访问static下的图片就不行了

这里注意把静态路径模式参数删了,否则会默认去找静态资源而不是上传的资源

拦截器

springboot和vue写个小项目_第37张图片

判断用户是否登录,用来拦截请求,减少冗余代码springboot和vue写个小项目_第38张图片 

 前端请求先到拦截器springboot和vue写个小项目_第39张图片

怎么用呢,先定义java类,然后继承handleInterceptor 

返回真就会通过然后继续下一个拦截器

拦截器要用要先注册springboot和vue写个小项目_第40张图片

springboot和vue写个小项目_第41张图片 

restful风格springboot和vue写个小项目_第42张图片 前端后端交互时遵循的一种原则,使用此理念设计出来的接口api更加简洁

 springboot和vue写个小项目_第43张图片

 springboot和vue写个小项目_第44张图片

 安全性就是get就不该修改服务器数据

幂等性就是n此请求和一次结果得一样

springboot和vue写个小项目_第45张图片

 springboot和vue写个小项目_第46张图片

 编程时如何设计成restful风格呢?springboot和vue写个小项目_第47张图片

 springboot和vue写个小项目_第48张图片

springboot和vue写个小项目_第49张图片 springboot和vue写个小项目_第50张图片

 

 springboot和vue写个小项目_第51张图片

 后端会有很多个人开发,比如订单模块的接口 ,给到文档swagger动态生成给到前端springboot和vue写个小项目_第52张图片

springboot和vue写个小项目_第53张图片 springboot和vue写个小项目_第54张图片springboot和vue写个小项目_第55张图片

 

 springboot和vue写个小项目_第56张图片

可以读到我们后端写的控制器还有里面的方法

可以通过注解来springboot和vue写个小项目_第57张图片 springboot和vue写个小项目_第58张图片

 

 

 mybatisplus解决面向对象与关系型数据库不匹配的问题,orm帮我们完成对象到数据库中记录的映射springboot和vue写个小项目_第59张图片

 springboot和vue写个小项目_第60张图片

连接池来申请多个连接提高连接效率springboot和vue写个小项目_第61张图片

springboot和vue写个小项目_第62张图片 

 我们的查询要怎么编写代码啊??

首先添加依赖,配置数据库,springboot和vue写个小项目_第63张图片

编写controller文件夹里的内容如此一来我们可以用浏览器来测了

springboot和vue写个小项目_第64张图片

用户访问这个方法后我们要找到 mapper去操作 数据库 

1. 搞个实体entity编写实体类

2.创建mapper文件夹来放数据库相关的操作接口

(为啥是接口呢?mybatis不需要具体的实现类,只需要方法声明,所有操作由mybatis来完成)

返回的泛型user就已经设计orm了

这里的sql语句回去找propeties里面的数据库配置,查询出来会自动帮你放到list里

springboot和vue写个小项目_第65张图片

 

3.在启动类里把接口文件夹扫描一下

springboot和vue写个小项目_第66张图片

 

 

那其中具体的原理是什么呢?

我们会想着到controller里面实现接口里的方法,不能直接new接口springboot和vue写个小项目_第67张图片

 springboot和vue写个小项目_第68张图片

spring会自动帮我们实例化usermapper,帮我们管理usermapper的实例,内部通过动态代理的方式帮我们生成了实现类,并且继承了或者说实现了接口,然后帮我们实现数据库传递的方法

控制器里想用mapper怎么办呢?首先声明定义一个属性,然后spring有个功能就是用注解autowired注入mapper实例化出的对象

springboot和vue写个小项目_第69张图片

然后调用接口里的方法就行 

 

 前后端分离的项目如何转成json格式呢?springboot和vue写个小项目_第70张图片

 

插入操作springboot和vue写个小项目_第71张图片

springboot和vue写个小项目_第72张图片 

 然后你我们用mybatitsplus改改

想用这个,有没有人能说一下答辩要是老师要你当场改写增删改查怎么搞??

springboot和vue写个小项目_第73张图片

 springboot和vue写个小项目_第74张图片

 如果表名和实体名不一致也不要紧springboot和vue写个小项目_第75张图片

在实体类上告诉它它对应的表是哪个?

还有别的注解可以设置成自增啥的springboot和vue写个小项目_第76张图片 

 

多表查询这么搞??查用户的时候看用户还有那些订单?

mybatis提供了四个注解springboot和vue写个小项目_第77张图片

 springboot和vue写个小项目_第78张图片

 把id作为参数传给ordermapper的selectbyid使用

springboot和vue写个小项目_第79张图片

 条件查询springboot和vue写个小项目_第80张图片

 分页查询

当数据库有成千上万条的时候,不可能一下全部搞出来,当前端点了下一页的时候再继续查询

先做一个分页拦截器

springboot和vue写个小项目_第81张图片

 springboot和vue写个小项目_第82张图片

 

你可能感兴趣的:(服务器,java,前端)