(一)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封装一般采用如下方式:接口->抽象类->实现类
(一)Java秒杀项目之项目环境搭建的更多相关文章
- OpenDaylight开发hello-world项目之开发环境搭建
OpenDaylight开发hello-world项目之开发环境搭建 OpenDaylight开发hello-world项目之开发工具安装 OpenDaylight开发hello-world项目之代码 ...
- Java秒杀简单设计一:搭建springboot环境
项目参考:慕课网 https://www.imooc.com/learn/587 Java秒杀 开发环境 JDK1.8.Maven.Mysql.Eclipse.SpringBoot2.0.5.myb ...
- node 项目中 koa2 环境搭建 以及项目发布
环境搭建: 1.Koa 必须使用 7.6 以上的版本.如果你的版本低于这个要求,就要先升级 Node. 查看node版本方法:node -v 2.使用koa-generator生成器生成项目 安装ko ...
- 项目实战 Prometheus环境搭建
项目摘要: 本文是搭建一套prometheus环境的教程. 前期准备:准备三台虚拟机,本文以centos7为例. 项目具体实施:分别进入每台虚拟机设置hostname:# hostnamectl se ...
- Vue.js项目的开发环境搭建与运行
写作背景:手上入一个用Vue框架写的微信公众号项目,根据公司安排,我负责项目源代码的验收工作(当然专业的工作检测会交给web开发人员,我只是想运行起来看一看). 1 开发环境安装步骤: (一)安装no ...
- JAVA基础学习——1.1 环境搭建 之jdk安装,环境变量配置 (系统Win10,64bit)
大学里虽然老师教过JAVA,但我没学.后来工作了,断断续续的也碰到了JAVA的项目,都是拉过来就干的节奏.也没有好好系统的学习一下. 从今天开始系统学习整理一下JAVA,以后再碰到JAVA项目的时候, ...
- java+接口自动化+eclipse之-----环境搭建
根据金字塔的比重总结,UI测试占用10%,接口测试占有20%,单元测试占用70%.考虑到之前学过一段时间的单元测试.UI测试,而接口测试未曾接触过,所以最近打算看看接口测试是怎么实现的. 首先,我们先 ...
- Java不走弯路教程(1.环境搭建)
1.环境搭建在开始写第一个Java程序之前,我们需要做一些简单的准备工作. 1.1 还记得DOS吗 我们可以通过图形界面来操作我们的电脑.但作为程序员,你首先需要学会用命令行的方式来操作电脑,因为不是 ...
- JAVA WEB快速入门之环境搭建
前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...
- Appium+Java(一) Windows环境搭建篇
准备: Android版本 :4.2.2 nodejs版本:5.6.0 appium版本:v1.4.16 1. 安卓SDK及配置环境变量 1.1.先下载sdk安装包:installer_r24.4.1 ...
随机推荐
- Jmeter(十一)函数助手
可以在JMeter的选项菜单中找到函数助手对话框 我们可以从下拉列表中选择一个函数,并为其参数设定值.如图,表格的左边一列是函数参数的简要描述,右边一列是供用户填充参数的值.不同函数要求的参数也不同. ...
- centos6升级系统内核
1.升级系统内核查看内核版本: uname -r 2.6.32-573.8.1.el6.x86_64 导入elrepo的key: rpm --import https://www.elrepo.org ...
- IE 不兼容 console 关键字
如果在JS文件中写了console.log()方法,在IE下打开 开发者工具就没问题,不打开就有问题js 报错 不执行等等 ...... (IE这都是什么鬼!!),百度过后的解决方法如下: 好吧,这其 ...
- Python最高效爬虫框架
Overview Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl websi ...
- hdu 1166 线段树 奇兵布阵
#include<iostream> using namespace std; ; )*];//n个叶子就有2*n-4*n个节点 ]; int n; void getup(int root ...
- 如何使用python将指定文件里的数据读取到字典里
list_dict_all = [] #创建一个空列表,全局变量,用来存放字典def AddtoDict(str_1): # 定义一个函数,功能:把文件里面的内容添加到字典中 list_str1 = ...
- Windows上配置Mask R-CNN及运行示例demo.ipynb
最近做项目需要用到Mask R-CNN,于是花了几天时间配置.简单跑通代码,踩了很多坑,写下来分享给大家. 首先贴上官方Mask R-CNN的Github地址:https://github.com/m ...
- SSL及TLS
SSL SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议. ...
- XAMPP是什么?
XAMPP=Apache + MySQL + PHP + Perl,是一个完全免费,易于安装和使用Apache发行版,包含了Apache.MySQL.PHP和Perl.支持Windows.Linux和 ...
- C代码调用Java代码
C代码调用Java代码应用场景 复用已经存在的java代码 c语言需要给java一些通知 c代码不方便实现的逻辑(界面) 反射 //1.加载类字节码 Class clazz = Demo.class. ...