【黑马点评配置篇】

黑马点评涉及功能:

项目配置(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;
    }
相关推荐
白鲸开源11 小时前
Apache SeaTunnel Zeta Engine 的 Basic Auth 是怎么工作的?
java·vue.js·github
白鲸开源11 小时前
一文读懂DolphinScheduler插件机制:如何轻松扩展任务类型与数据源
java·架构·github
用户2986985301416 小时前
Java 实现 Word 文档文本查找与高亮标注
java·后端
宇宙之一粟17 小时前
乐企版式文件生成平台
java·后端·python
plainGeekDev17 小时前
MVC 写法 → MVVM
android·java·kotlin
SL_staff18 小时前
3周搭完MES系统:JVS低代码+JVS-IoT物联网的实战记录
java·前端·低代码
MacroZheng18 小时前
斩获20w star!Claude Code最强插件,AI编程必备!
java·人工智能·后端
唐青枫19 小时前
Java Spring WebFlux 实战指南:用 Mono、Flux 和 WebClient 写响应式接口
java·spring
小bo波1 天前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking1 天前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试