SpringBoot工程练习

一、创建数据库并添加资源
注意:为防止乱码,统一使用utf-8编码。
– 设置编码为utf-8
mysql>set names utf8;
– 如果是导入数据库可以执行以下命令。
mysql>source emdb.sql;

二、搭建工具工程和parent工程
1.创建父类 parent 工程
作用:总jar包版本管理,pom文件例子参看:https://mp.****.net/mdeditor/88541670#
步骤:
1).创建maven项目,quickstart
2).pom文件编写,注意packaging类型为pom
2.创建工具common工程
作用:所有依赖工具工程的项目都可以使用其中的工具类,提高代码的复用性。
步骤:
1).创建maven项目,quickstart
2).继承父类 parent
3).将需要的工具类在这里,
注:如果是拷贝代码的话,有时文件拷贝不全所以
a.可以通过workspace进行拷贝。
b.也可以使用eclipse中的window->show view->Navigator目录拷贝,这个目录是eclipse的磁盘目录。
4).由于项目上用了 httpClient 所以配置了Application.properties文件 样例参见:https://mp.****.net/mdeditor/88542658#

三、业务代码开发
前台管理所有的静态资源,包括页面,接收客户端访问,页面跳转
1.前端工程搭建
1).创建maven项目,webapp
2).继承依赖 parent和common
3).配置Application.properties文件。 样例参看:https://mp.****.net/mdeditor/88542843#
4).创建启动类和静态资源
5).配置Nginx和hosts文件,修改端口和域名
2.后端系统搭建
1).创建maven项目,quickstart
2).赖 parent和common
3).配置Application.properties文件。 样例参看:https://mp.****.net/mdeditor/88542799#
4.启动类
5.Nginx和host文件配置
6.controller、service、mapper
这里要注意:mapper.xml中的namespace要与工程符合,并且映射 id 要与mapper接口的方法一致。
mapper.xml 样例:https://mp.****.net/mdeditor/88543065# SpringBoot工程练习

实现逻辑

后端实现逻辑:
全部商品首页搜索(分页查询):
controller层使用注解
Autowired、RequestMapping、responseBody
参数page和row
返回Page对象
分页计算公式:商品总数%每页行数 有余数页数+1 , 没有余数页数不+1
mapper层使用 param注解 指定键对应sql语句的引用值

单个商品:根据id查询
注解使用 PathVariable
新增、修改 商品:返回状态信息使用的是Object data (ObjectMapper类封装为一个对象)

用户系统sso系统
注册和登录用户
1.先检查用户名重复
2.向数据库添加信息,密码用密文的
3.登录时检查用户名称和密码是否和法
4.一旦合法实现单点登录
单点登录
将查询的user放到Redis中,ticket为key,userjson为值
验证登录合法后,将ticket返回给前台,存放到前台的cookie中,当下次访问时cookie携带ticket验证登录状态,返回字符串(空或用户名)给前台,jsonp解析成js代码显示在页面。
使用jsonp实现跨域请求数据。

前台处理逻辑只有两种情况
1.页面跳转:在controller方法返回字符串页面解析成jsp页面
2.ajax发送异步请求:
a.ajax做内部跳转
b.大多数情况是ajax做异步请求,返回字符串,js解析
c.使用jsonp,做跨域的访问
因为前台不能直接访问数据库,使用httpClient进行网址访问。
图片上传
用户选择图片,点击开始上传按钮,ajax处理逻辑,必须使用uploadFile类
前台逻辑(
1.判断合法 截取获取到的文件名称后缀
2.木马imageIO 获取图片的输入流,使用imageIO设置宽和高
3.生成存储路径 使用hash算法获取8位数字,生成文件夹
4.生成虚拟路径 虚拟域名+生成的文件夹+UUID+原图片名称
5.返回

购物车系统:
后台维护一个cart表格 有用户id、商品id、数量,价格,图片、名字
查找购物车: 根据用户id查找,通过路径传参返回json字符串
新增购物车:已有的是更新,没有的是新增,使用商品id查询出商品的信息,返回存储的状态,