(一)Java秒杀项目之项目环境搭建

一、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封装一般采用如下方式:接口->抽象类->实现类

原文地址:https://www.cnblogs.com/yanguobin/p/11751623.html