【黑马点评配置篇】

黑马点评涉及功能:

项目配置(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是常见的两种实现方式

详细区分放在了下篇

https://blog.csdn.net/2501_92547326/article/details/158929148?fromshare=blogdetail&sharetype=blogdetail&sharerId=158929148&sharerefer=PC&sharesource=2501_92547326&sharefrom=from_link


1.2实现发送短信验证码功能

流程:

  1. 发送验证码
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;
    }
相关推荐
野生技术架构师4 小时前
2026 Java 面试全套总结,八股 + 场景 + AI 相关面试考点
java·人工智能·面试
香吧香4 小时前
java服务异常日志只打印异常类型,没有堆栈定位分析
java·jvm·异常
qq_2518364575 小时前
AI 疾病自查功能SpringbootAI项目实战 · 技术实现文档
java·ai·ai编程
逆境不可逃5 小时前
Pi Agent 学习笔记:对话太长以后,如何压缩上下文
java
MetaLite5 小时前
JDK 8~26 核心特性一览:从 Stream 到 Scoped Values
java
wno7046 小时前
Spring Boot WebFlux增删改查
java·spring boot·后端
君顾16 小时前
上海24小时自助健身房系统开发实战指南:从架构设计到落地部署
java·开发语言·健身房
我要见SA姐17 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
数据库·ide·vscode·oracle·编辑器
SL_staff7 小时前
别急着买商业规则引擎:90%风控场景根本不需要全量编码能力
java·程序员·groovy
ManageEngineITSM7 小时前
DevOps和ITIL是什么关系?是替代还是互补一文讲清
java·服务器·资产管理·变更管理