
JavaWeb
文章平均质量分 65
JavaWeb
秀秀_heo
一个学习前端开发的大学生,博客为自己的学习笔记,仅供个人学习使用。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【SpringBoot】Java MVC 集成 Swagger 生成 API 文档
使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。官网: https://swagger.io/Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。原创 2024-01-04 12:09:37 · 871 阅读 · 0 评论 -
【SpringBoot】org.junit.runners.model.InvalidTestClassError 单元测试类报错(已解决)
出现该报错是因为 @Test 注解的错误使用。一般正确使用 @Test 下,就没有报错了。但是,我们可以继续深入探讨。原创 2024-01-11 21:44:05 · 1615 阅读 · 0 评论 -
【SpringBoot】登录认证(JWT)和 ThreadLocal
定义了一种简洁的、自包含的格式,用于通信双方以json数据格式安全的传输信息。一般情况下,我们需要写成全局登录响应拦截器。原创 2023-12-21 17:13:47 · 869 阅读 · 0 评论 -
【SpringBoot】响应
类上有@RestController注解或@ResponseBody注解时:表示当前类下所有的方法返回值做为响应数据。方法的返回值,如果是一个POJO对象或集合时,会先转换为JSON格式,在响应给浏览器。controller方法中的return的结果,使用@ResponseBody注解(方法注解或类注解)响应给服务器。在真实的项目开发中,无论是哪种方法,我们都会定义一个统一的返回结果。定义在一个实体类Result来包含以上信息。原创 2023-12-09 14:55:08 · 279 阅读 · 0 评论 -
【SpringBoot】SpringBoot 项目初始化方法
SpringBoot 官方的模板生成器(https://start.spring.io/),现在 Spring Boot 3.x 支持最低版本为 java17。github 搜索 springboot 模板,拉取现成代码。这里我修改成阿里的镜像主要是要使用 Java8。原创 2024-01-18 22:52:43 · 636 阅读 · 0 评论 -
【SpringBoot】配置文件
将实体类中的本应该写死的信息写在属性配置文件中。可以使用@Value("${键名}")获取,也可以使用@ConfigurationProperties(prefix="前缀")获取(实体类成员变量名与配置文件中的键名保持一致)。// pojoimport org//@Value("${email.user}") //发件人邮箱 public String user;//@Value("${email.code}") //发件人邮箱授权码 public String code;原创 2023-12-15 20:05:09 · 311 阅读 · 0 评论 -
【SpringBoot】分组校验和自定义校验(注解)
参数校验时,我们希望不同的方法参数校验规则不同,这时就需要分组校验。原创 2024-01-02 09:47:29 · 629 阅读 · 0 评论 -
【SpringBoot】请求
从请求参数 queryString 中获取数据,进行参数映射,在简单请求中表示为如果方法形参名称与请求参数名称不匹配。非必须传入的参数:(@RequestParam(required=false)) 默认值为 true。使用场合:前端传来的是完整对象,且是以 json格式进行传递。实体类对象也可以嵌套使用,只要与所有的请求参数有对应即可。自动将请求体中的 json 数据转换为实体类对象。这里注意请求参数和接收的参数名需要一一对应。将前端传递过来的参数封装到一个实体类对象中。请求参数在请求路径中。原创 2023-12-31 22:18:43 · 674 阅读 · 1 评论 -
【SpringBoot】文件上传到阿里云
【SpringBoot】文件上传到阿里云。原创 2024-01-02 16:05:06 · 950 阅读 · 0 评论 -
【SpringBoot】Builder 构建器构造类对象
【代码】【SpringBoot】Builder 构建器构造类对象。原创 2024-01-03 23:51:49 · 627 阅读 · 0 评论 -
【SpringBoot】日期格式化
【代码】【SpringBoot】日期格式化。原创 2024-01-05 20:55:55 · 615 阅读 · 0 评论 -
【SpringBoot】注册功能,参数校验及异常处理
实现注册功能时经常遇到参数校验的问题。原创 2023-12-18 20:14:03 · 600 阅读 · 0 评论 -
【SpringBoot】配置 MyBatis
【代码】【SpringBoot】配置 MyBatis。原创 2023-12-15 20:16:05 · 218 阅读 · 0 评论 -
【MyBatis】配置 SQL 提示(IDEA 代码自动补全)和解决未能解析数据库 Unable to resolve table ‘employee‘ 问题
原因是 IDEA 没有和 数据库 建立连接,需要连接数据库(默认在 MyBatis 中编写 SQL 语句是不识别的。不用数据库的时候可以关闭,点击正方形的红色小框框就可以。原创 2024-01-03 21:23:35 · 5334 阅读 · 4 评论 -
【Maven】清理 maven 仓库
可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。此时,maven不会再重新帮你下载,需要你删除这些以lastUpdated结尾的文件,然后maven才会再次自动下载这些jar包。1). 定义批处理文件del_lastUpdated.bat (直接创建一个文本文件,命名为del_lastUpdated,后缀名直接改为bat即可 )初始情况下,我们的本地仓库是没有任何jar包的,此时会从私服去下载(如果没有配置,就直接从中央仓库去下载)。原创 2023-12-05 22:02:52 · 3319 阅读 · 0 评论 -
【Maven】依赖管理
Maven的生命周期就是为了对所有的构建过程进行抽象和统一。描述了一次项目构建,经历哪些阶段。Maven 构建项目的生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等几乎所有构建步骤。clean:清理工作。default:核心工作。如:编译、测试、打包、安装、部署等。site:生成报告、发布站点等。这三套生命周期,里面有很多很多的阶段,我们主要关注以下几个:• clean:移除上一次构建生成的文件• compile:编译项目源代码。原创 2023-12-05 22:01:52 · 1008 阅读 · 0 评论 -
【Maven】更新依赖索引
有时候给idea配置完maven仓库信息后,在idea中依然搜索不到仓库中的jar包。这是因为仓库中的jar包索引尚未更新到idea中。打开设置----搜索maven----Repositories----选中本地仓库-----点击Update。原创 2023-12-05 22:02:22 · 1508 阅读 · 0 评论 -
【Maven】安装和使用
Maven 是一款用于管理和构建 java 项目的工具,可以进行依赖管理、统一项目结构和项目构建。原创 2023-12-05 22:01:21 · 803 阅读 · 0 评论 -
前端自动生成接口请求代码 - OpenAPI Typescript Codegen 和 @umijs/openapi 的基本使用
在你的项目中,准备一个符合 OpenAPI 规范的 JSON (OpenAPI 格式 / Swagger / Slf4j 接口文档的导出格式都是 JSON)或 YAML 文件。该文件描述了你的 API 的端点、参数、响应等信息。是生成的 TypeScript 代码的输出路径。requestLibPath 为自己的导出的 axios 实例文件。–input:指定接口文档的路径、url 或字符串内容(必填)是你准备的 OpenAPI 规范文件的路径,–client:生成的代码所需要使用的请求库。原创 2024-06-13 21:53:24 · 1071 阅读 · 0 评论 -
【JavaWeb】2. 通用基础代码
自定义错误码,对错误进行收敛,便于前端统一处理。自定义错误码时,建议跟主流的错误码(比如 HTTP 错误码)的含义保持一致,比如 “未登录” 定义为 40100,和 HTTP 401 错误(用户需要进行身份认证)保持一致,会更容易理解。错误码不要完全连续,预留一些间隔,便于后续扩展。在exception@GetterPARAMS_ERROR(40000, "请求参数错误"),NOT_LOGIN_ERROR(40100, "未登录"),NO_AUTH_ERROR(40101, "无权限"),原创 2025-01-07 22:04:07 · 1188 阅读 · 0 评论 -
使用 Maven 创建 jar / war 项目
如果想要在项目中加入配置文件(如properties文件、xml文件等),那么需要自己手动加入resources目。录:除了.java文件,其他文件都放入到这个目录。编译后会把此目录所有内容直接放入到classes目。每个Maven项目都有自己的坐标。原创 2024-11-23 21:05:50 · 821 阅读 · 0 评论 -
【JavaWeb】分布式锁
Redisson 是一个 java 操作 Redis 的客户端,提供了大量的分布式数据集来简化对 Redis 的操作和使用,可以让开发者像使用本地集合一样使用 Redis,完全感知不到 Redis 的存在。核心思想 就是:先来的人先把数据改成自己的标识(服务器 ip),后来的人发现标识已存在,就抢锁失败,继续等待。等先来的人执行方法结束,把标识清空,其他的人继续抢锁。定时任务时间先设定好,大概延后几分钟就行,下面的操作包括:设定定时任务时间—打包—启动三个服务—到时间抢锁其中一个服务抢到锁控制台回馈。原创 2024-08-28 18:28:19 · 1278 阅读 · 0 评论 -
【JavaWeb】定时任务和批量插入数据库数据
默认情况下,上述不同的分组组合结果也会不同,而且并不是一组数越大越好,因为线程数如果不自定义的话是默认的,根据不同的电脑,默认分配的线程数是不一样的。这种插入方法过程:建立数据库连接会话,插入一条数据,关闭数据库连接会话。也就是说,一部分线程干了一次活,可能也有一部分线程干了两次活。问题:第一个用户访问还是很慢(因为只有在被请求后的数据才可能被缓存),也能一定程度上保护数据库。// CPU 密集型:分配的核心线程数 = CPU - 1。并发注意执行的先后顺序无影响,不要使用非并发类的集合。原创 2024-08-28 08:43:03 · 570 阅读 · 0 评论 -
【JavaWeb】分布式 session
当服务器 A (localhost:8080)登录用户,然后请求发到服务器 B(localhost:8081),那么结果请求 B 时,B 还会作出相应吗?当用户在 A 登录,所以 session(用户登录信息)存在了 A 上,然后因为 B 没有用户信息,所以不认识用户,也做不出正确的响应。为了测试结果,我们可以用不同的端口启动我们的后端项目。成功携带8080端口登录获得的用户信息(session),来请求响应8081端口的接口。如果要共享 cookie,可以种一个更高层的公共域名,比如 heo.com。原创 2024-01-21 16:53:02 · 893 阅读 · 0 评论 -
【JavaWeb】Swagger + Knife4j 接口文档的整合
【代码】Swagger + Knife4j 接口文档的整合。原创 2024-01-20 10:06:11 · 761 阅读 · 0 评论 -
【JavaWeb】AOP
MyLog。原创 2024-07-30 16:43:20 · 1072 阅读 · 0 评论 -
【JavaWeb】公共字段自动填充功能(枚举、自定义注解、AOP、反射)
使用@interface语法来定义注解(Annotation)。注解的参数类似无参数方法,可以用default设定一个默认值,比如。元注解:有一些注解可以修饰其他注解,这些注解就称为元注解(meta annotation)。@Target使用@Target可以定义Annotation;;;;。@Retention元注解@Retention定义了Annotation;;。如果@Retention不存在,则该Annotation默认为CLASS。但是通常我们自定义的。原创 2024-01-06 23:30:26 · 1207 阅读 · 0 评论 -
【JavaWeb】事务管理
所谓事务的传播行为,指的就是在A方法运行的时候,首先会开启一个事务,在A方法当中又调用了B方法, B方法自身也具有事务,那么B方法在运行的时候,到底是加入到A方法的事务当中来,还是B方法在运行的时候新建一个事务?如果在这个方法执行的过程当中出现了异常,就会进行事务的回滚操作。在这两个方法上都添加了@Transactional注解,就代表这两个方法都具有事务,而在A方法当中又去调用了B方法。事务的传播行为:就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制。原创 2024-01-08 00:11:44 · 1283 阅读 · 0 评论 -
【JavaWeb】Interceptor
实现HandlerInterceptor接口,并重写其所有方法。原创 2024-07-30 11:43:28 · 440 阅读 · 0 评论 -
【JavaWeb】Filter
使用了过滤器之后,要想访问web服务器上的资源,必须先经过滤器,过滤器处理完毕之后,才可以访问对应的资源。在web服务器启动的时候会自动的创建Filter过滤器对象,在创建过滤器对象的时候会自动调用init初始化方法,这个方法只会被调用一次。doFilter方法:这个方法是在每一次拦截到请求之后都会被调用,所以这个方法是会被调用多次的,每拦截到一次请求就会调用一次doFilter()方法。当我们关闭服务器的时候,它会自动的调用销毁方法destroy,而这个销毁方法也只会被调用一次。原创 2024-07-30 11:26:38 · 590 阅读 · 0 评论 -
【JavaWeb】JWT
【代码】【JavaWeb】JWT。原创 2024-07-30 10:38:52 · 469 阅读 · 0 评论 -
【JavaWeb】会话技术
服务器端在给浏览器响应数据的时候,它会将 Session 的 ID 通过 Cookie 响应给浏览器。这个 Set-Cookie 响应头对应的值代表的服务器端会话对象 Session 的 ID。浏览器在第一次请求服务器的时候,我们就可以直接在服务器当中来获取到会话对象Session。如果是第一次请求Session ,会话对象是不存在的,这个时候服务器会自动的创建一个会话对象Session。拿到 ID 之后,就会从众多的 Session 当中来找到当前请求对应的会话对象Session。原创 2024-07-30 10:34:47 · 677 阅读 · 0 评论 -
【JavaWeb】配置文件
application.properties 是 springboot 项目默认的配置文件,所以springboot程序在启动时会默认读取application.properties配置文件,可以使用一个现成的注解:@Value,获取配置文件中的数据。比如:配置文件当中叫endpoints,实体类当中的属性也得叫endpoints,另外实体类当中的属性还需要提供 getter / setter方法。@Value 注解通常用于外部配置的属性注入,具体用法为: @Value(“${配置文件中的key}”)原创 2024-07-30 10:10:20 · 520 阅读 · 0 评论 -
【SpringBoot】分页查询
RequestParam(required = false) 设置可选参数。映射配置文件与源目录结构一致,创建。文件名字也需要一致。封装分页返回结果对象。原创 2024-01-02 11:29:40 · 615 阅读 · 0 评论 -
【Mybatis】动态 SQL
如果不使用动态 sql,当我们条件查询的时候:会出现这样没有传递参数,但是仍组装了这个查询条件。我们需要SQL语句会随着用户的输入或外部条件的变化而变化,也就是。原创 2024-07-29 11:23:27 · 393 阅读 · 0 评论 -
【Mybatis】xml 配置文件
如果需要实现复杂的SQL功能,建议使用XML来配置映射语句,也就是将SQL语句写在XML配置文件中。使用Mybatis的注解方式,主要是来完成一些简单的增删改查功能。resultType属性,指的是查询返回的单条记录所封装的类型。原创 2024-07-29 10:55:39 · 224 阅读 · 0 评论 -
【MyBatis】基础操作
我们输入的参数16并没有在后面拼接,id的值是使用?} 里面的属性名可以随便写,如:#{id}、#{value}。性能更高:预编译SQL,编译一次之后会将编译后的SQL语句缓存起来,后面再次执行这条语句时,不会再次编译。而在测试的过程中,我们会发现有几个字段(deptId、createTime、updateTime)是没有数据值的。},生成预编译SQL,防止SQL注入安全。更安全(防止SQL注入):将敏感字进行转义,保障SQL的安全性。:在SQL语句中,对不一样的列名起别名,别名和实体类属性名一样。原创 2024-07-29 10:51:29 · 1074 阅读 · 0 评论 -
【JavaWeb】封装全局异常处理类
【代码】【JavaWeb】封装全局异常处理类。原创 2024-01-24 08:25:09 · 471 阅读 · 0 评论 -
【JavaWeb】自定义通用返回对象
目的:给返回对象补充一些信息,告诉前端这个请求在业务层面上是成功还是失败,以及具体的描述信息。我们需要自定义错误码(因为前端的HTTP状态码默认的值比较少)和正常错误返回类。原创 2024-01-23 18:57:30 · 629 阅读 · 0 评论 -
【MyBatis-Plus】逻辑删除
注意,只有MybatisPlus生成的SQL语句才支持自动的逻辑删除,自定义SQL需要自己手动处理逻辑删除。对于一些比较重要的数据,我们通常采用逻辑删除。(即用一个字段表示是否删除,实际上始终在数据库没有被删除)当逻辑删除字段为 true,业务处理的时候会自动把该数据当做一个“不存在”的数据处理。原创 2024-01-18 22:18:29 · 664 阅读 · 0 评论