Maven打包与JDK版本不对应解决方法
我这里使用jdk8。
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>
依赖解析
- 每个SpringBoot项目都需要该父项目
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version></parent>
- web开发需要该依赖,像RestController,GetMapping,WebMvcConfigurer,org.springframework.web都是该依赖的
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
- mysql驱动,没有这个的话,配置数据库时driver-class-name会爆红
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/xxxxxusername: rootpassword: xxxxxx
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency>
- 添加该依赖后可以使用@Data等注解
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
- Spring测试依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency>
- Mybatis依赖
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.2</version></dependency>
- 可以生成图形验证码
<!-- 添加图形验证码依赖 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-captcha</artifactId><version>5.8.6</version></dependency>
- redis依赖:配置后可以操作redis(StringRedisTemplate)
配置信息:redis:database: 0timeout: 5000host: redis服务器地址port: 6379lettuce:pool:max-active: 20 #连接池最大连接数(使用负值表示没有限制)max-wait: -1 #连接池最大阻塞等待时间(使用负值表示没有限制)min-idle: 0 #连接池中的最大空闲连接max-idle: 10 #连接池中的最小空闲连接
<!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
- JWT依赖,可以用来生成token
<!---jwt--><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.4.0</version></dependency>
- Common IO 是一个工具库,用来帮助开发IO功能
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>
拦截器配置
- 先写一个拦截器
@Slf4j
public class JWTInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws MyException {String token = request.getHeader("Authorization");if(StringUtils.isEmpty(token)){response.setStatus(400);throw new MyException("token不能为空");}try {JWTUtil.verify(token);} catch (Exception e) {log.error("token无效! 错误 ", e);response.setStatus(400);return false;}return true;}
}
- 配置拦截器
@Configuration
public class IntercaptorConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new JWTInterceptor())//拦截的路径.addPathPatterns("/**")//排除登录接口和一些静态资源.excludePathPatterns("/user/login").excludePathPatterns("/static/images/**");}
}