【黑马点评配置篇】

黑马点评涉及功能:

项目配置(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;
    }
相关推荐
withelios11 小时前
Java泛型全面理解指南
java
withelios11 小时前
Java枚举全解析:从基础到高级使用技巧
java·后端
yngsqq11 小时前
编译的dll自动复制到指定目录并重命名
java·服务器·前端
曹牧12 小时前
Spring:@RequestMapping
java·后端·spring
霸道流氓气质12 小时前
SpringBoot+LangChain4j+Ollama实现本地大模型语言LLM的搭建、集成和示例流程
java·spring boot·后端
iiiiyu12 小时前
常用API(SimpleDateFormat类 & Calendar类 & JDK8日期 时间 日期时间 & JDK8日期(时区) )
java·大数据·开发语言·数据结构·编程语言
迷藏49412 小时前
# 发散创新:基于Selenium的自动化测试框架重构与实战优化在当今快速迭代的软件开
java·python·selenium·测试工具·重构
Nyarlathotep011312 小时前
LockSupport工具类
java·后端
阿巴斯甜13 小时前
BiFunction的使用
java
XiYang-DING13 小时前
【Java EE】多线程(1)
java·python·java-ee