SpringBoot其实不是新框架,而是默认配置了很多框架的使用方式。就像maven整合了所有jar包,Springboot整合了所有框架,并通过一行简单的main方法启动应用。
继承了spring的框架们:
电商秒杀应用简介:
商品列表页获取秒杀商品列表
进入商品详情页获取秒杀商品详情
秒杀开始后进入下单确认页下单并支付成功
项目实战:
使用IDEA+Maven搭建SpringBoot开发环境
集成Mybatis操作数据库
实现秒杀项目
构建Maven项目—>引入SpringBoot依赖—>接入Mybatis
2.1 使用IDEA创建maven项目
new->project->maven项目->选择maven-archetype-quickstart
1.导入springboot相关配置:
https://blog.csdn.net/m0_37657841/article/details/90524410
https://blog.csdn.net/midnight_time/article/details/90717676
跟着做完后输入8080出现了一下页面说明springboot工程在不需要任何外力下内嵌了tomcat容器
2.SpringMVC+RESTful的使用:
???有点失败,网页没有出来,依旧是上面那样。没有报错也不知为啥。
***************************
APPLICATION FAILED TO START
***************************
Description:
Web server failed to start. Port 8080 was already in use.
----------------------------------------------------------------
看到报错了。。。8080已经被用了??之前tomcat不是都关了吗。。
注:8080 是默认端口,如果要使用其他端口,可以在res下面写 application.properties 修改,如:server.port=8090
然后我把idea停止运行再试就成功了。。。。所以是自己占了自己??晕
好了,还是挺神奇的,都没有在index.jsp上面写对应到方法的requestmapping?(不过简单的显示确实不需要页面。。。
3.接入Mybatis(看安利视频的博主图文并茂的博客链接)
mybatis竟然有自动生成mapping.xml文件的插件。。。
创建数据库,填写mybatis-generator.xml,这个xml里面指定mybatis插件连接数据库和让插件生成什么文件生到哪里。
运行Mybatis插件,自动生成相关文件
就还挺神奇的,实体类(对应表),DAO接口(写方法)和mapping.xml文件(sql语句),这3个都不需要手动编写了。
只需要把包写好就行,比如实体类老师先写好了包dataobject,然后改生成文件中的包的路径com.miaoshaproject.dataobject
然后写生成对应表及类名
运行run:mybatis_generator
然后application.properties中配置SpringBoot项目数据源
------------------------------------------------------------------------------------------------------------------
编写测试的时候@MapperScan注解报红??
找半天后发现pom文件里mybatis的包引错了。。。
要用mybatis-springboot
<!--5、引入的第五个:Mybatis相关的jar包-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
------------------------------------------------------------------------------------------------------
然后要运行app这个,换过来。千万运行之前那个generator的maven
网友总结了所有代码,但没有详细注解说明:
https://www.cnblogs.com/victorbu/p/10538615.html
输入8090端口可以看到了:
然后手动网数据库插入一条数据:
显示数据库中找到的用户的名字
以上就是第二章基础搭建,springboot接入mybatis,编写generator.xml让插件自动生成实体类,dao接口和映射文件。
第三章 用户模块开发
上一章,我们学会了:
构建Maven项目
引入SpringBoot
引入Mybatis
简单使用SpringMVC
https://blog.csdn.net/midnight_time/article/details/91048543
https://blog.csdn.net/m0_37657841/article/details/90545984
接下来就要详细的学习使用SpringMVC了,具体知识点有:
1.MVC分层架构
之前学的都是数据库查询到的一行实体对象数据直接返回到前端,但实际开发中不可以直接返回数据库的数据,需要service层有一个model掩盖一下。
password属性也加到model里面。 model层才是真正处理业务核心层,而dataobject实体类仅仅只是对数据库的映射。
但是model也不需要全都返回给前端,所以在cotroller层再增加一个viewobject层。
由cotroller层的@requestbody和@requestparm在页面展示了json数据
1. DAO层 --- dataobject,与数据库一一映射
2. Service层 --- model,整合因业务需求而分离的dataobject
3. Controller层 --- viewobject,屏蔽如密码等敏感信息返回给前端
2.通用返回类型
Controller中的方法返回值类型会出现不同,比如返回viewobject,返回null,返回异常Exception信息等等。如果每个方法都有独自的返回值类型的话,那样的设计不太好,也不容易以统一的形式(比如统一的JSON格式)呈现给前端。好的解决方法就是独立出一层:response,创建一种通用的返回值类型CommonReturnType,它有两个属性status和data。
1.增加一个response包。创建CommonReturnType类给他统一返回类型。
public class CommonReturnType { //表明对应请求的返回结果 success fail private String status; //若status=success,则data内返回前端需要的json数据 //若status=fail,则data内使用通用的错误码格式 private Object data; // public CommonReturnType(String status, Object data) {//这才是构造方法 // this.status = status; // this.data = data; // } //定义一个通用的创建方法 是自己写的方法 不是构造方法 那为什么不用构造方法呢?因为他这个可以返回值! public static CommonReturnType create(Object result){//传入对象或基本数据类型都可以 return create(result, "success");//调用下面这个重载的方法,传入的都依然返回 但是多设置了一个status } public static CommonReturnType create(Object result, String status){ CommonReturnType type = new CommonReturnType(); type.setStatus(status); type.setData(result); return type; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } }