实战练习篇01 注册接口
原创 已于 2025-08-07 15:42:19 修改 · 粉丝可见 · 86 阅读 · 0 · 0 GEO检测 · 编辑 文章链接:https://blog.csdn.net/hacker_51/article/details/140277294
学习了些皮毛,尝试练习,大佬见笑啦。
准备工作,添加 application.properties的设置: 1 2 3 4 5 6 7 8 9 10 11 12 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url= jdbc:mysql: spring.datasource.username= root spring.datasource.password= 123456 mybatis.configuration.map-underscore-to-camel-case =true mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
1、用户数据 1 2 3 4 5 6 7 8 9 10 CREATE DATABASE mynote; USE mynote;CREATE TABLE USER ( user_name VARCHAR (255 ) NOT NULL , user_email VARCHAR (255 ) NOT NULL , password VARCHAR (255 ) NOT NULL , create_time DATETIME NOT NULL , update_time DATETIME NOT NULL , last_login_time DATETIME );
2、创建实体类 UserEntity: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package com.angindem.Entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.time.LocalDateTime;@Data @NoArgsConstructor @AllArgsConstructor public class UserEntity { private String userName; private String userEmaile; private String password; private LocalDateTime createTime; private LocalDateTime updateTime; private LocalDateTime lasterLoginTime; }
ResultEntity: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 package com.angindem.Entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data @NoArgsConstructor @AllArgsConstructor public class ResultEntity { private Integer code; private String msg; private Object data; public ResultEntity (Integer code, String msg) { this .code = code; this .msg = msg; } public static ResultEntity succeed () { return new ResultEntity (200 , "操作成功!!!" ); } public static ResultEntity succeed (String msg) { return new ResultEntity (200 , msg); } public static ResultEntity succeed (String msg, Object data) { return new ResultEntity (200 , msg, data); } public static ResultEntity error () { return new ResultEntity (500 , "操作失败!!!" ); } public static ResultEntity error (String msg) { return new ResultEntity (500 , msg); } }
3、创建 Controller、Service、Mapper UserController: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package com.angindem.Controller;import com.angindem.Entity.ResultEntity;import com.angindem.Entity.UserEntity;import com.angindem.Service.UserService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;@Slf4j @RestController @RequestMapping("/mynote") public class UserController { @Autowired private UserService userService; @PostMapping("/register") public ResultEntity register (@RequestBody UserEntity user) { user.setCreateTime(LocalDateTime.now()); user.setUpdateTime(LocalDateTime.now()); log.info("注册服务:{}" ,user); userService.register(user); return ResultEntity.succeed(); } }
UserService: 1 2 3 4 5 6 7 package com.angindem.Service;import com.angindem.Entity.UserEntity;public interface UserService { void register (UserEntity user) ; }
UserServiceImpl: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package com.angindem.Service.Impl;import com.angindem.Entity.UserEntity;import com.angindem.Mapper.UserMapper;import com.angindem.Service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void register (UserEntity user) { userMapper.insert(user); } }
UserMapper: 1 2 3 4 5 6 7 8 9 10 11 12 13 package com.angindem.Mapper;import com.angindem.Entity.UserEntity;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Mapper;@Mapper public interface UserMapper { @Insert("insert into user(user_name, user_email, password, create_time, update_time) " + "values(#{userName},#{userEmaile},#{password},#{createTime},#{updateTime}) ") void insert (UserEntity user) ; }
4、APIfox测试是否添加成功:
成功插入数据!!!
5、引入发送与接收邮箱功能 进入QQ邮箱开启邮箱服务获取授权码:
PS:这里我已经开启过了,未开启的根据官方提示开启即可,开启后进入管理服务
引入邮箱依赖: 1 2 3 4 5 <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-mail</artifactId > </dependency >
添加 application.properties 的设置: 1 2 3 4 5 6 7 8 9 10 # 配置邮箱用户名 spring.mail.username=你的QQ邮箱号码 # 配置申请到的授权码 spring.mail.password=刚才短信申请到的授权码 # 配置 smtp 服务器地址 spring.mail.host=smtp.qq.com # 启用 SSL 连接 spring.mail.properties.mail.smtp.ssl.enable=true # 配置邮件编码 spring.mail.default-encoding=UTF-8
测试发送Tesst类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 package com.angindem; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import java.util.Date; @SpringBootTest class MyProjectApplicationTests { @Autowired private JavaMailSenderImpl javaMailSender; @Test public void TestSendQQemail() { //一个简单的邮件发送 SimpleMailMessage mailMessage = new SimpleMailMessage(); //创建一个邮件信息 mailMessage.setSentDate(new Date()); mailMessage.setSubject("TestSend"); //邮件的主题 mailMessage.setText("新学习的Spring Boot邮件发送的知识"); //邮件的内容 mailMessage.setTo("**********@qq.com"); //发送者的邮箱 mailMessage.setFrom("**********@qq.com"); //接收者的邮箱 //我这里发送者和接收者都填写的是自己的邮箱 javaMailSender.send(mailMessage); //发送邮件 } }
测试效果图:
发送成功!!!
6、编写验证码接口