【黑马点评配置篇】

黑马点评涉及功能:

项目配置(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;
    }
相关推荐
予枫的编程笔记2 小时前
【面试专栏|Java并发编程】Thread类核心方法全解:start和run的区别
java·thread·java多线程·java面试·start方法·wait notify·sleep方法
一路向北North2 小时前
Spring Security OAuth2.0(10):登出
java·后端·spring
代码的奴隶(艾伦·耶格尔)2 小时前
Hbase的使用
java·前端·hbase
代码探秘者2 小时前
【Redis】告别锁失效:RedLock 与 ZooKeeper 分布式锁原理与实战对比
java·数据结构·redis·后端·python·zookeeper·面试
前端 贾公子2 小时前
uniapp 小程序获取后端的二进制 保存到手机相册
java·前端·javascript
希望永不加班2 小时前
Spring Boot 统一异常处理:从混乱到优雅的实用方案
java·spring boot·后端·spring·状态模式
学习要积极2 小时前
Spring 组件工具类-FFmpegUtils
java·后端·spring
洋不写bug2 小时前
操作系统管理:进程解析
java
liurunlin8882 小时前
Tomcat 都有哪些核心组件
java·tomcat·firefox