黑马点评涉及功能:
项目配置(2026.3.11)
导入项目(常见问题)
主要出现在IDEA配置 上
主要检查JDK版本,maven,编码格式(UTF-8)
本人jdk版本是jdk17

maven版本

对项目导入主要进行的修改为
pom.xml

加了Spring Boot 父版本版本号(是springboot父版本,注意不要改错了)
java
<version>2.7.18</version>
yaml文件
该文件主要进行了Redis,Mysql,mybatis-plus等配置
主要进行修改是是Redis,Mysql。我们可以通过ai来辅助我们查找到属于自己Redis: host,port以及Mysql:uesrname,password。
启动项目
启动前端项目
在终端输入start nginx.exe
会看到一个页面一闪而过,之后在浏览器输入http://localhost:8080/
出现页面即为启动成功。

1.短信登录
1.1业务实现功能流程图:

在实现登录业务时(session和JWT区分)
session和JWT是常见的两种实现方式
详细区分放在了下篇
1.2实现发送短信验证码功能
流程:

- 发送验证码
java
@Slf4j
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Override
public Result sendCode(String phone, HttpSession session) {
//1.校验手机号
if(RegexUtils.isPhoneInvalid(phone)){
//2.如果不符合,返回错误信息
return Result.fail("手机号格式错误!");
}
//3.符合,生成验证码
String code = RandomUtil.randomNumbers(6);
//4.保存验证码到session
session.setAttribute("code",code);
//5.发送验证码
log.debug("发送短信验证码成功,验证码:{}", code);
//返回ok
return Result.ok();
}
}
2.登录
java
@Override
public Result login(LoginFormDTO loginForm, HttpSession session) {
// 1.校验手机号
String phone = loginForm.getPhone();
if (RegexUtils.isPhoneInvalid(phone)) {
// 2.如果不符合,返回错误信息
return Result.fail("手机号格式错误!");
}
// 3.校验验证码
Object cacheCode = session.getAttribute("code");
String code = loginForm.getCode();
if(cacheCode == null || !cacheCode.toString().equals(code)){
//3.不一致,报错
return Result.fail("验证码错误");
}
//一致,根据手机号查询用户
User user = query().eq("phone", phone).one();
//5.判断用户是否存在
if(user == null){
//不存在,则创建
user = createUserWithPhone(phone);
}
//7.保存用户信息到session中
session.setAttribute("user",user);
return Result.ok();
}
private User createUserWithPhone(String phone) {
//1.创建用户
User user = new User();
user.setPhone(phone);
user.setNickName(USER_NICK_NAME_PREFIX+RandomUtil.randomNumbers(10));
//2.保存用户
save(user);
return user;
}