SpringBoot常用依赖

web依赖

<!-- 引入web依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Mybatis依赖

数据库依赖

<!--引入mybatis依赖-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

MySQL依赖

<!--MySQL驱动依赖-->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
</dependency>

Lombok依赖

Lombok 依赖,它在 Spring Boot 项目里主要用来 减少样板代码(getter/setter/构造器/toString 等)。

<!--引入lombok依赖-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

快速提供getter/setter

使用方法:在实体类上添加注解@Data

// Data注解由Lombok提供
@Data
public class User {
    private Integer id;//主键ID
    private String username;//用户名
    private String password;//密码
    private String nickname;//昵称
    private String email;//邮箱
    private String userPic;//用户头像地址
    private LocalDateTime createTime;//创建时间
    private LocalDateTime updateTime;//更新时间
}

快速提供无参构造与全参构造

//Lombok提供的两个注解:
@NoArgsConstructor//快速添加无参构造
@AllArgsConstructor//快速添加全参构造
public class Result<T> {
    private Integer code;//业务状态码  0-成功  1-失败
    private String message;//提示信息
    private T data;//响应数据

    //快速返回操作成功响应结果(带响应数据)
    public static <E> Result<E> success(E data) {
        return new Result<>(0, "操作成功", data);
    }

    //快速返回操作成功响应结果
    public static Result success() {
        return new Result(0, "操作成功", null);
    }

    public static Result error(String message) {
        return new Result(1, message, null);
    }
}

JWT依赖

<!--引入JWT依赖-->
<dependency>
    <groupId>com.auth0</groupId>
    <artifactId>java-jwt</artifactId>
    <version>4.4.0</version>
</dependency>

Jwt令牌生成和验证的实体工具类

JwtUtil.java

package com.itheima.utils;//自己更换

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtil {

    private static final String KEY = "itheima";
	
	//接收业务数据,生成token并返回
    public static String genToken(Map<String, Object> claims) {
        return JWT.create()
                .withClaim("claims", claims)
                .withExpiresAt(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 12))
                .sign(Algorithm.HMAC256(KEY));
    }

	//接收token,验证token,并返回业务数据
    public static Map<String, Object> parseToken(String token) {
        return JWT.require(Algorithm.HMAC256(KEY))
                .build()
                .verify(token)
                .getClaim("claims")
                .asMap();
    }

}

Jwt令牌的下发与验证

令牌下发

@PostMapping("/login")
public Result<String> login(String username,String password){
    //根据用户名查询用户,从数据库拿到一个用户对象
    User loginUser = userService.findByUserName(username);
    //判断用户是否存在
    if(loginUser==null){
        return Result.error("用户名错误");
    }
    //若存在,判断密码是否正确
    if(Md5Util.getMD5String(password).equals((loginUser.getPassword()))){
        //登陆成功
        Map<String,Object> claims = new HashMap<>();
        claims.put("id",loginUser.getId());
        claims.put("username",loginUser.getUsername());

        String token = JwtUtil.genToken(claims);//创建令牌
        return Result.success(token);//令牌下发
    }
    return Result.error("密码错误");
}

令牌验证

@GetMapping("/list")
public Result<String> list(@RequestHeader(name = "请求头名") String token, HttpServletResponse response) {
    //验证token,令牌验证
    try {
        Map<String, Object> claims = JwtUtil.parseToken(token);//报错就验证失败,正常执行就验证成功
    } catch (Exception e) {
        //http响应码为401
        response.setStatus(401);
        return Result.error("未登录");
    }
    return Result.success("所有的文章数据。。。");
}

SpringBoot单元测试依赖

<!--引入SpringBoot单元测试坐标-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>
posted @ 2026-07-02 17:41  畅畅c  阅读(1)  评论(0)    收藏  举报