SpringBoot其实不是新框架,而是默认配置了很多框架的使用方式。就像maven整合了所有jar包,Springboot整合了所有框架,并通过一行简单的main方法启动应用

继承了spring的框架们:

SpringBoot构建电商基础秒杀项目(一)

 

电商秒杀应用简介:

商品列表页获取秒杀商品列表

进入商品详情页获取秒杀商品详情

秒杀开始后进入下单确认页下单并支付成功

项目实战:

使用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容器

SpringBoot构建电商基础秒杀项目(一)

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?(不过简单的显示确实不需要页面。。。

SpringBoot构建电商基础秒杀项目(一)

3.接入Mybatis(看安利视频的博主图文并茂的博客链接)

mybatis竟然有自动生成mapping.xml文件的插件。。。

创建数据库,填写mybatis-generator.xml,这个xml里面指定mybatis插件连接数据库和让插件生成什么文件生到哪里。

运行Mybatis插件,自动生成相关文件

就还挺神奇的,实体类(对应表),DAO接口(写方法)和mapping.xml文件(sql语句),这3个都不需要手动编写了

只需要把包写好就行,比如实体类老师先写好了包dataobject,然后改生成文件中的包的路径com.miaoshaproject.dataobject

然后写生成对应表及类名

SpringBoot构建电商基础秒杀项目(一)

 运行run:mybatis_generator

然后application.properties中配置SpringBoot项目数据源

------------------------------------------------------------------------------------------------------------------

编写测试的时候@MapperScan注解报红??

SpringBoot构建电商基础秒杀项目(一)

找半天后发现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构建电商基础秒杀项目(一)

 然后手动网数据库插入一条数据:

显示数据库中找到的用户的名字

SpringBoot构建电商基础秒杀项目(一)

以上就是第二章基础搭建,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实体类仅仅只是对数据库的映射

SpringBoot构建电商基础秒杀项目(一)

但是model也不需要全都返回给前端,所以在cotroller层再增加一个viewobject层

SpringBoot构建电商基础秒杀项目(一)

由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类给他统一返回类型。

SpringBoot构建电商基础秒杀项目(一)
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;
    }
}
View Code

相关文章:

  • 2021-12-30
  • 2021-06-19
  • 2022-01-22
  • 2022-12-23
  • 2021-04-01
  • 2022-12-23
  • 2022-01-03
  • 2021-04-22
猜你喜欢
  • 2021-12-20
  • 2022-03-06
  • 2021-12-04
  • 2021-05-23
  • 2021-07-10
  • 2021-12-26
  • 2021-05-22
相关资源
相似解决方案