基于Springboot框架的拦截器使用——WebMvcConfigurer接口和@Configuration注解

本文详细介绍了基于Springboot的用户修改密码功能的实现,从持久层的SQL设计,到业务层异常处理,再到控制器层的请求处理。同时,讲解了如何创建登录拦截器,并利用`WebMvcConfigurer`接口和`@Configuration`注解进行配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 用户-修改密码-持久层

1)分析SQL语句

修改密码时需要执行的SQL语句是:

UPDATE  t_user 
SET   password=?, modified_user=?, modified_time=? 
WHERE  uid=?

以上SQL语句中,password的值应该是用户提交的新密码经过加密后的值,即:后续在操作时,需要先获取当前用户的盐值,才可以完成整个功能!包括在这个功能中,还应该先验证用户的原密码,则需要先获取用户的原密码的值!则需要查询功能:

 SELECT   password, salt, is_delete 
 FROM   t_user 
 WHERE  uid=?

2)接口与抽象方法

在`UserMapper`接口中添加2个抽象方法:    

Integer updatePassword(
        @Param("uid") Integer uid, 
        @Param("password") String password, 
        @Param("modifiedUser") String modifiedUser, 
        @Param("modifiedTime") Date modifiedTime);
User findByUid(Integer uid);

3)配置映射

在`UserMapper.xml`中配置以上2个抽象方法对应的映射:  

  <!-- 更新用户密码 -->
    <!-- Integer updatePassword(
            @Param("uid") Integer uid, 
            @Param("password") String password, 
            @Param("modifiedUser") String modifiedUser, 
            @Param("modifiedTime") Date modifiedTime) -->
    <update id="updatePassword">
        UPDATE  t_user 
        SET 
            password=#{password}, 
            modified_user=#{modifiedUser}, 
            modified_time=#{modifiedTime} 
        WHERE    uid=#{uid}
    </update>

    <!-- 根据用户id查询用户数据 -->
    <!-- User findByUid(Integer uid) -->
    <select id="findByUid"  resultType="cn.tedu.store.entity.User">
        SELECT password, salt,   is_delete AS isDelete
        FROM   t_user   WHERE    uid=#{uid}
    </select>

完成后,在`UserMapperTestCase`中编写并执行以上2个抽象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值