后端项目开发笔记

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/**");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/695605.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】有关栈和队列相互转换问题

文章目录 用队列实现栈思路实现 用栈实现队列思路实现 用队列实现栈 Leetcode-225 用队列实现栈 思路 建立队列的基本结构并实现队列的基本操作 这部分这里就不多说了&#xff0c;需要的可以看笔者的另一篇博客 【数据结构】队列详解(Queue) 就简单带过一下需要实现的功能 …

1070: 邻接矩阵存储简单路径

解法&#xff1a; #include<iostream> #include<vector> using namespace std; int arr[100][100]; int n; int sta, des; vector<int> path; vector<vector<int>> res; void dfs(vector<int> &a,int i) {a[i] 1;path.push_back(i);…

Request请求数据 (** kwargs参数)

目录 &#x1f31f;前言&#x1f349;request入门1. params2. data3. json4. headers5. cookies6. auth7. files8. timeout9. proxies10. allow_redirects11. stream12. verify13. cert &#x1f31f;总结 &#x1f31f;前言 在Python中&#xff0c;发送网络请求是一项常见的任…

秋招算法题——怪盗基德的滑翔翼

文章目录 题目描述思路分析思维误区 实现代码思路总结 题目描述 思路分析 注意点 只能从高到低方向一旦选择了&#xff0c;就确定了 问题转换 一旦确定了方向和起点后&#xff0c;就变为求以出发点为结尾的最长上升子序列是多少相当于同时确定两遍最长上升子序列&#xff0…

动画图片怎么在线做?简单三步轻松上手

在现在的广告营销中&#xff0c;我们经常会看到带有动态效果的gif格式图片。它的效果能够吸引大众的目光有效的传递信息、随性。而通过使用在线动画制作&#xff08;https://www.gif.cn/&#xff09;工具&#xff0c;不用下载软件手机、pc均可在线操作。只需要上传jpg、png格式…

HR招聘面试测评,如何判断候选人的职业价值观?

在企业的招聘过程中&#xff0c;如何判断候选人的职业价值观&#xff0c;尤其是和公司的企业文化&#xff0c;以及价值观高度相符的员工。这将直接决定了候选人能否在岗位上高效率工作&#xff0c;也可能决定员工的离职率&#xff0c;职业成就感和幸福感。 对候选人的价值观分…

Spring简介IOCDI

文章目录 Spring简介Spring课程介绍为什么要学学什么怎么学 初识SpringSpring家族Spring发展史 Spring体系结构Spring核心概念目前代码存在的问题核心概念 IOC和DI入门案例IOC入门案例入门案例分析实现步骤实现代码 DI入门案例DI入门案例分析实现步骤实现代码图解演示 Bean的基…

vue多选功能

废话不多说&#xff0c;直接上代码&#xff01;&#xff01;&#xff01; <template><div class"duo-xuan-page"><liv-for"(item, index) in list":key"index"click"toggleSelection(item)":class"{ active: sel…

山西教育杂志山西教育杂志社山西教育编辑部2024年第4期目录

课题研究 小学语文随堂小练笔策略研究 陈立固; 3-4 儿童戏剧工作坊载体下小学语文戏剧课堂的建构 郭黎明; 5-6《山西教育》投稿&#xff1a;cn7kantougao163.com 文化生态视域下小学英语教学的传统文化融入 周慧娟; 7-8 基于“主题语境”的初中英语课堂教学研究…

未来已来!这三款数字孪生产品你不能错过

随着科技的不断进步&#xff0c;数字孪生技术已经逐渐渗透到我们生活的各个领域。数字孪生&#xff0c;简而言之&#xff0c;就是在虚拟世界中构建一个与物理世界相对应的数字模型&#xff0c;通过实时数据采集和分析&#xff0c;为各种行业和领域提供更高效、更精确的决策支持…

微信小程序之转盘抽奖

1. 实现效果 2. 实现过程 话不多说&#xff0c;直接上代码 /**index.wxml */ <view class"title">旋转大转盘</view> <view class"rote-box fcc"><view class"box fcc"><image class"bg" src"/stat…

VTK图形算法API:vtkSphereSource,球几何数据

大家好&#xff0c;我是先锋&#xff0c;专注于AI领域和编程技术分享&#xff0c;在这里定期分享计算机编程知识&#xff0c;AI应用知识&#xff0c;职场经验&#xff1b; 本系列介绍VTK图像算法API&#xff0c;后续会介绍VTK项目实践应用&#xff0c;关注我&#xff0c;不错过…