一、Spring Boot环境搭建

1、把项目分成多个模块,每个模块对应一部分(不一定是一个章节)的内容,代码将在文章的具体位置给出,每个模块都是在之前模块的基础上构建,每个模块都为Spring Boot项目。

2、idea中新建一个Empty Project名为mymiaosha,在其下新建第一章对应的模块mymiaosha1,该模块代码包含到下文的二、集成Thymeleaf,Result结果封装为止,具体代码见下文。

二、集成Thymeleaf,Result结果封装

1、Result结果封装

1、对返回的JSON数据进行统一处理,一般包含状态码(code),状态信息(msg),数据(data),新建结果类Result,其中声明这三个变量用来封装返回数据,就可以用类似 new Result(0, "success", {data} ); new Result(500100, "服务端异常", null); 这种形式返回

2、为了进行更好的封装,可以在Result类中再做一次封装,封装成静态泛型方法使用类名直接调用,封装完后使用 Result.success( {data} ); Result.error(500100, "服务端异常");这种形式返回

3、由于状态码和状态信息是一体的,可以新建CodeMsg类来封装,声明状态码(code)、状态信息(msg)变量,然后进一步封装一个CodeMsg类型的静态变量,封装完后使用 Result.error(CodeMsg.SERVER_ERROR);来返回

4、由于具体数据的类型不确定,一般使用T类型,所以结果类也是一个泛型类,最后返回的类型就可以使用类似Result<String>这样

2、集成Thymeleaf

加入spring-boot-starter-thymeleaf依赖,默认的Thymeleaf模版文件放置位置如下,也可以自己更改。由于默认是这样,所以代码中省略没写

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

Thymeleaf其实就是html文件,需要在头部进行声明,再使用

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'hello:'+${name}" ></p>
</body>
</html>

最后新建控制类进行测试,具体见代码。如果上面文案不清楚的话,建议看我的代码提交,每一次提交依次对应构建的每一步。

至此,mymiaosha1模块构建完毕,上述文章代码参见我的本项目仓库地址中的mymiaosha1模块。同时下文在mymiaosha2模块上构建,mymiaosha2模块由mymiaosha1模块复制而来。

三、集成Mybatis+Druid

从这里开始,将在mymiaosha2模块上开发。

引入mybatis-spring-boot-starter依赖,它包含了mybatis依赖;引入druid依赖,mysql-connection-java依赖

配置数据库连接信息,使用Mybatis注解方式,直接在dao层接口方法上使用mybatis依赖下的注解

spring.datasource.url=jdbc:mysql://localhost:3306/miaosha?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring-tx依赖下的@Transactional注解可以用在业务层的方法上进行事务管理

四、集成Jedis+Redis安装+通用缓存Key封装

Redis安装请参考我的文章Redis在Mac上的下载安装

SpringBoot项目中通过Jedis操作Redis请参考我的文章Spring Boot通过Jedis来操作Redis

通用缓存Key封装一般采用如下方式:接口->抽象类->实现类

最新文章

  1. WBS功能分解
  2. 【FFXV】中物理模拟的结构以及游戏业界的乐趣
  3. 将具有关联关系的两个表从hibernate查询出来转成json对象时报错
  4. IOS 7 Study - UIDatePicker
  5. 在hibernate中使用c3p0数据源
  6. 【转】分享II→IV FPGA本人的几个版本电源模块设计的方案
  7. 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
  8. Pat(Advanced Level)Practice--1043(Is It a Binary Search Tree)
  9. makefile 学习一
  10. Linux在高铁项目的部署环境
  11. Directed Roads
  12. 编译错误:expected an indented block
  13. Linux 系统日志
  14. std::string的拷贝赋值研究
  15. vuex 管理vue-router的传值
  16. 使用 urllib 构造请求对象
  17. YII assets使用
  18. javaSE——字符流
  19. 最新wireshark抓包教程
  20. Camel之AsyncProcessor

热门文章

  1. AtCoder AGC038F Two Permutations (网络流、最小割)
  2. 快速理解arguments对象
  3. PostgreSQL10配置远程连接
  4. 环信-(php)服务器端REST API
  5. leetcode探索中级算法
  6. 批量替换word内容
  7. 接入上一篇SSM框架整合示例
  8. Spring RedisTemplate常用方法(List,Hash)
  9. JSP 传统标签extends TagSupport
  10. dbgrid中移动焦点到指定的行和