SpringBoot 系列(3)- 快速开发业务代码

用户头像
引花眠
关注
发布于: 2020 年 10 月 11 日

目标

在之前的章节中,只是简单的构建了一个可运行的框架,并没有设置实际的运行代码,而在本节中,我们就要开始编写一个简单的业务系统,包括页面展示,数据持久化等。



这个业务系统我准备实现这样的功能,商品录入、展示商品、购买商品以及订单查看功能,这样一个简单的系统应该能够介绍大部分常用SpringBoot的特性。



商品展示

当然我们要做到的秒杀系统没有那么复杂,只需要设计两张表,一张是商品表,一张是购买记录表,其余的什么订单、物流等都不需要,毕竟只是一个demo。



商品的表示(Entity)

以下是商品的实体表示,



package com.example.demo.entity;
import java.util.Date;
public class Product {
private Long id;
// 商品名称
private String name;
// 品牌
private String brand;
// 描述
private String description;
// 数量
private Integer number;
private Date createTime;
private Date updateTime;
//省略Getter和Setter
}



可以看到,商品只有简单的几个属性,没有其他类似淘宝商品的其他属性。



Dao层

选择ORM

在Java中通常使用orm进行持久化,比较常用的有Hibernate、Mybatis等,我比较倾向于使用Mybatis,感觉自己操作sql语句比较放心。MyBatis开发比价令人头疼的是Mapper等文件的生成,虽然MyBatis本身提供对这些自动生成的支持,但是如果能更方便开发那就非常好了,而这个能简化开发的组件就是mybatis-plus,可以去其官网查看具体的信息。 我们先加入依赖:



<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.1.2version>
dependency>



mybatis-plus的使用还是比较简单的,创建好实体后,构建Mapper接口,继承自com.baomidou.mybatisplus.core.mapper.BaseMapper



package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.Product;
public interface ProductMapper extends BaseMapper<Product> {
}



ProductMapper 如果只是常用的CRUD功能,BaseMapper已经提供了,并不用写对应的Mapper.xml文件 接下来在DemoApplication.java中加上@MapperScan注解,扫描com.example.demo.mapper包:



@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}



选择数据库

数据库,当然是选择mysql(Oracle相对来讲还是太大),同样加入依赖到pom.xml



<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
dependency>



Web层

因为业务逻辑比较简单,所以就暂时不需要用到Service层,直接就通过在Controller中调用Dao来进行数据的处理。 目前需要的功能只有两个,一个是列表展示商品,一个是录入商品信息。



@Controller
@RequestMapping("product")
public class ProductController {
@Autowired
private ProductMapper productMapper;
@GetMapping("list")
public String list(Model model) {
List<Product> list = productMapper.selectList(null);
model.addAttribute("products", list);
return "productList";
}
@PostMapping("add")
public String add(Product product, Model model) {
productMapper.insert(product);
return "redirect:/product/list";
}
}



  1. list 展示商品列表

  2. add 添加商品,然后又转回到商品列表页面



页面展示

首先SpringBoot不推荐使用jsp,那么我们就从善如流,选择模板技术作为前端展示,在这里我们选择beetl作为前端模板引擎,大家也可选择freemark等作为前端模板,在pom.xml中加入起步依赖,其会自动加入合适的版本



<dependency>
<groupId>com.ibeetlgroupId>
<artifactId>beetl-framework-starterartifactId>
<version>1.2.6.RELEASEversion>
dependency>




作为一个后端开发人员,对于html、css真的很无能,所以只能使用layui作为我的UI组件,提供一个稍微好看点的界面。





总结

让我们看一下,如果需要进行实际的业务开发需要做哪些操作



  1. spring配置 除了对mybatis-plus-starter、mysql-connector-java与beetl-framework-starter的依赖管理,没有写其他内容

  2. 总共需要开发的业务代码包括Dao接口、Controller以及web页面,除此之外,再无其他



ps:所以,用SpringBoot能够大幅度的减少配置工作,避免讲多余的时间浪费在配置上。



参考文档

  1. mybatis-plus



发布于: 2020 年 10 月 11 日 阅读数: 13
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
SpringBoot系列(3)- 快速开发业务代码