创建项目,实用spring模板创建
添加四个依赖:thymeleaf、spring web、lombok、MySQL driver,还需要mybatis plus依赖,在mybatisplus官网复制
删掉没用的目录和文件
<!-- mybatis plus-->
<!-- 需要更新lombok plugin,不然报错-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!-- mysql组件-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- lombok组件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- test组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
写配置文件
server:
port: 8014
spring:
thymeleaf:
cache: false
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc.mysql://localhost:3306/seckill?useUnicode=true&characterEncodeing=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
hikari:
pool-name: DateHikariCP
minimum-idle: 5
idle-timeout: 1800000
maximum-pool-size: 10
auto-commit: true
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
mybatis-plus:
mapper-locations: classpath*:/mapper/*Mapper.xml
type-aliases-package: com.deng.seckill.pojo
logging:
level:
com.deng.seckill.mapper: debug
写Controller.java文件测试,HTML中写入thymeleaf命名空间
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org">
<!--不能有空格,thymeleaf命名空间-->
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>
<p th:text="'hello'+${name}"></p>
</body>
</html>
Controller.java中model.addAttribute()传的参数通过thymeleaf进行获取
Navicat新建数据库和用户表
这里创建表的时候,不需要加单引号
MD5加密
第一次 (在前端加密,客户端):防止用户的密码在网络中通过明文的形式传输
第二次:在服务端再次加密,当获取到前端发送来的密码后。通过MD5(密码+随机盐值)再次生成密码后存入数据库。防止数据库被盗的情况下,通过md5反查,查获用户密码。
在pom中加入MD5依赖
<!-- MD5依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
在utils包中添加MD5工具类
package com.deng.seckill.utils;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Component;
/**
* MD5工具类
*
* @author dengzhan
*/
@Component
public class MD5Util {
public static String md5(String src) {
return DigestUtils.md5Hex(src);
}
//准备好salt
private static final String salt = "1a2b3c4d";
//输入密码转后端接收密码,第一次MD5加密
public static String inputPassToFormPass(String inputPass) {
String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass
+salt.charAt(5) + salt.charAt(4);
return md5(str);
}
//后端密码到数据库 需要参数salt,才能倒推用户输入的密码
public static String formPassToDBPass(String formPass, String salt) {
String str = ""+salt.charAt(0)+salt.charAt(2) + formPass +salt.charAt(5)
+ salt.charAt(4);
return md5(str);
}
//真正调用的方法,从前端到数据库
public static String inputPassToDbPass(String inputPass, String saltDB) {
String formPass = inputPassToFormPass(inputPass);
String dbPass = formPassToDBPass(formPass, saltDB);
return dbPass;
}
public static void main(String[] args) {
System.out.println(inputPassToFormPass("123456"));//d3b1294a61a07da9b49b6e22b2cbd7f9
System.out.println(formPassToDBPass(inputPassToFormPass("123456"),
"1a2b3c4d"));
System.out.println(inputPassToDbPass("123456", "1a2b3c4d"));
}
}
d3b1294a61a07da9b49b6e22b2cbd7f9
b7797cce01b4b131b433b6acf4add449
b7797cce01b4b131b433b6acf4add449