Spring Boot MyBatis对敏感信息进行加密保存教程
一、整体流程
为了实现对敏感信息的加密保存,我们可以按照以下步骤进行操作:
步骤 | 动作 | 代码 |
---|---|---|
1 | 创建Spring Boot项目 | 无 |
2 | 引入相关依赖 | xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> |
3 | 配置数据库连接 | yaml spring: datasource: url: jdbc:mysql://localhost:3306/demo?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml |
4 | 创建数据库表 | 创建表的SQL语句 |
5 | 创建实体类 | java @Data public class User { private Long id; private String username; private String password; } |
6 | 创建Mapper接口 | java public interface UserMapper { @Insert("INSERT INTO user(username, password) VALUES(#{username}, #{password})") int insert(User user); } |
7 | 创建Mapper XML文件 | xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" " <mapper namespace="com.example.mapper.UserMapper"> <insert id="insert" parameterType="com.example.entity.User"> INSERT INTO user (username, password) VALUES (#{username}, #{password}) </insert> </mapper> |
8 | 创建Service层 | java public interface UserService { int insert(User user); } |
9 | 创建Service实现类 | java @Service public class UserServiceImpl implements UserService { private final UserMapper userMapper; @Autowired public UserServiceImpl(UserMapper userMapper) { this.userMapper = userMapper; } @Override public int insert(User user) { return userMapper.insert(user); } } |
10 | 创建Controller | java @RestController public class UserController { private final UserService userService; @Autowired public UserController(UserService userService) { this.userService = userService; } @PostMapping("/user") public String addUser(@RequestBody User user) { if (userService.insert(user) > 0) { return "添加用户成功"; } return "添加用户失败"; } } |
11 | 加密敏感信息 | java @Configuration public class EncryptConfig { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } } |
二、代码实现步骤
1. 创建Spring Boot项目
使用IDE工具创建一个Spring Boot项目。
2. 引入相关依赖
在项目的pom.xml文件中引入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
3. 配置数据库连接
在项目的application.yml文件中配置数据库连接信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/demo?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: 123456