自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 java接口中 使用@RequestParam和@RequestPart区别

RequestParam通常用于获取请求参数,这些参数可以是URL中的查询参数,也可以是表单数据中的字段。而@RequestPart则是用于处理多部分(multipart)请求中的部分,特别是当上传文件或处理复杂类型(比如JSON)的时候。表单字段(application/x-www-form-urlencoded 或 multipart/form-data)。文件上传的局限性:虽然可以绑定 MultipartFile,但无法处理复杂内容类型(如嵌套JSON)。上传文件(MultipartFile)。

2025-03-26 17:10:08 894

原创 Java业务实现类方法使用@Transactional注解时,方法里面出现不合理情况时,使用return和使用异常 有什么区别;事务不回滚的情况

*使用异常:**如果在方法中抛出异常(无论是运行时异常还是检查型异常,只要不是被@Transactional注解的rollbackFor属性明确排除的异常类型),那么事务将会回滚。例如,在一个添加用户的方法中,如果检查到用户已存在(不合理业务),然后直接return,此时数据库中的插入操作等可能已经执行,但不会触发事务回滚。**使用异常:**抛出异常可以使代码的逻辑更加清晰,将不合理的业务情况作为一种错误状态进行处理,与正常的业务流程分开。

2025-03-26 16:53:26 218

原创 为什么EasyExcel能处理大数据量而不内存溢出,EasyExcel原理

为什么EasyExcel能处理大数据量而不内存溢出,EasyExcel原理

2025-03-20 15:53:17 892

原创 多线程建议使用手动创建ThreadPoolExecutor,不建议使用newFixedThreadPool

因为 newFixedThreadPool默认使用无界的,当任务提交速度 > 处理速度时,队列无限增长,最终导致比如导入10万行Excel数据时,若每次分页读取100条提交到线程池,队列可能堆积1000+个未处理任务。默认采用(直接抛出异常),但无法应对突发流量或异常堆积情况固定线程数缺乏弹性,无法根据负载动态扩容/缩容。

2025-03-06 10:35:12 286

原创 在邮箱中点击链接(直接请求接)时虽能正常处理业务,但提示Could not resolve view with nameat javax.servlet.http.HttpServlet··

解决办法:直接在这个接口上加@ResponseBody。

2025-02-19 17:25:41 159

原创 解决缓存击穿、穿透、雪崩,对一般情况最合适的方案

带上该配置后,就可以缓存null值了,值得一提的是,这个缓存时间要设的少一点,例如15秒就够,如果设置过长,会导致正常的缓存也无法使用。对于缓存击穿,在高并发下,对一个特定的值进行查询,但是这个时候缓存正好过期了,缓存没有命中,导致大量请求直接落到数据库上,如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。解决击穿的最简单的方法,只有一个,就是限流!对于缓存穿透,有一个很简单的解决方案,就是缓存NULL值~从缓存取不到的数据,在数据库中也没有取到,直接返回空值。

2025-01-09 16:36:24 280

原创 docker安装Elasticsearch

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

2024-07-05 10:37:22 425

原创 docker启动nacos和seata的时报Connection refused,通过network建立虚拟子网和指定容器hostname来解决

这将启动一个名为nacos的Nacos容器,并将其连接到my-network网络。端口映射将容器的8848端口映射到主机的8848端口。这将启动一个名为seata的Seata容器,并将其连接到my-network网络。还有另外的问题,配置项是有在nacos了,但是还是没有发现seata服务·········现在,Nacos和Seata容器都已启动并连接到同一个虚拟子网。然后,启动Seata容器并指定其主机名为seata。接下来,启动Nacos容器并指定其主机名为nacos。首先,创建一个Docker网络。

2024-07-04 17:01:29 493

原创 已安装docker的轻量服务器安装k8s,报Failed connect to download.docker.com:443; No route to host

一直报:https://download.docker.com/linux/centos/7/x86_64/stable/repodata/repomd.xml: [Errno 14] curl#7 - “Failed connect to download.docker.com:443;想在 应用创建方式 为 使用容器服务器 的轻量服务器 上执行安装k8s ,系统参数:CentOS7.6-Docker24 CentOS 7.6 64bit;,然后网上查,各种说防火墙、端口、网络问题。

2024-06-25 23:08:49 3478

原创 使用docker拉取镜像时,报Error response from daemon:unauthorized: incorrect username or password

如果是使用默认的Docker Hub,则不需要指定。替换你的用户名、密码和仓库的URL。

2024-06-18 11:48:36 1103

原创 记一次调用其他服务时,传参为map的方式

开始时直接使用的框架是forest 调用 传参,如下,但是被调用的服务这里完成没收到参数值。使用forest 调用其他服务 传参,但是被调用的服务这里完成没收到参数值

2024-04-02 15:50:17 324

原创 使用spring的ApplicationEventPublisher事件监听器流程

核心原理:观察者模式。

2024-03-21 11:25:58 381 2

原创 JDBC与连接池的区别、原理和连接池的有点

是连接数据库的基本方式,是一种用于执行SQL语句的java API ,可以为多种关系数据库提供统一访问,它由一组java编写的类和接口组成。1、首先加载jdbc 驱动程序,2、然后建立数据库连接Connection,3、创建执行SQL的语句Statenment,4、处理结果集ResultSet,并返回5、最后释放资源。这种方式每次和数据库连接时,都需要实例一下连接数据的方法和类。

2023-12-12 15:22:21 311

原创 java接口报com.alibaba.fastjson.JSONException: TODO

11.static T parseObject(String text, Class clazz) ,调用的是父类JSON 的parseObject(String text, Class clazz),把一个JSONObject 转换为指定的类。1.put(String key, Object value) ,在JSONObject 中设置键值对方法,设值的时候key应唯一,如果后面再次用使用过的key设值,只保留后面设置的值。3.int size(), 获取JSONObject 中键值对的数量。

2023-12-05 11:48:31 1028

原创 arthas详细使用教程

Arthas 是Alibaba开源的Java诊断工具。可实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。Arthas 支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

2023-11-30 22:51:17 3929

原创 apt update更新kaliLinux软件列表时:获取:1 https://mirrors.aliyun.com/kali kali-rolling InRelease [41.2 kB] 错误:

百度一直找解决方法,一直不得,然后把报错放到 讯飞星火大模型 提问,给出的答案完美解决。

2023-11-22 17:33:52 491

转载 介绍JsonNode基本使用方法

JsonNode是Jackson库中的一个类,用于解析和操作json数据,是一个树形结构的数据,可以用于读写json文件、数据的验证、数据的过滤、数据的查询等。

2023-11-21 15:48:09 3431

原创 说说你对springMVC的理解

5、中央控制器调用ViewResolver(视图解析器)根据处理器返回的ModelAndView中的逻辑视图名为中央控制器返回一个可用的view实例。1、增加了系统结果和实现的复杂性,对于简单的界面,严格遵循MVC,使模型、视图、控制器分离,这样增加了机构的复杂性,降低运行效率。视图为获取足够的数据显示,可能需要多次调用,对未变化数据的不必要的频繁访问,也将损害操作性能。2、前端控制器通过HandlerMapping 找到对应的handler并返回,可根据xml配置、注解查找。2、有利于开发中的分工。

2023-10-07 08:50:05 187

原创 java.io.EOFException: Unexpected EOF read on the socket;CannotGetJdbcConnectionException

生产环境有一段时间没改动什么,突然某天很多用户使用时,页面地方很多超时,直接重启系统解决,系统是部署在阿里云上的。

2023-09-25 17:11:46 636

原创 mysql根据字段数字值排序前后

【代码】mysql根据字段数字值排序前后。

2023-09-06 10:29:20 167

转载 完全搞懂java中的时间戳,时区,日期格式

完全搞懂java中的时间戳,时区,日期格式。

2023-03-08 10:50:09 317

转载 excel 模板表格中的日期格式为yyyy/MM/dd,表字段类型是date, java 代码如何接收处理

excel 模板表格中的日期格式为yyyy/MM/dd,表字段类型是date, java 代码如何接收处理

2023-02-08 11:52:15 1157

原创 面试官问:为啥不建议使用Select *

为啥不建议使用Select *

2023-01-31 15:42:59 413

转载 多线程事务怎么回滚?说用 @Transactional 可以回去等通知了!

2,在spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。删除操作的数据回滚了,数据库中的数据依旧存在,说明事务成功了。

2023-01-31 10:10:06 315

原创 swagger中注解@ApiModelProperty的属性required = true时,如果请求没有传这个属性会不会报错

如果某个实体类的属性@ApiModelProperty的属性required = true时,请求没有传这个属性不会报错,只不过swagger显示是必须而已。

2023-01-18 10:42:52 2033

转载 @RequestBody和@RequestParam区别以及form-data和json的选取

RequestBody一般用于post方法,因为post的数据都在包含在请求体中的,正如注解的名字含有"body"身体的意思。@RequestParam一般用于get方法,数据在链接的请求头中,正如注解的名字含有"param"参数的意思。@requestbody能解析,但springmvc会进行解析,所以通常不用@requestbody。在@RequestBody中使用的json格式的数据,不能解析form-data的数据。浏览器原生的文件表单,用于传输文件。@requestbody的接收。

2023-01-17 11:37:52 2304

原创 String、Date类型的日期年月日互转

String、Date类型的日期年月日互转

2023-01-09 15:10:30 3972

原创 Excel常用导入导出工具类

【代码】Excel常用导入导出工具类。

2022-12-26 15:55:28 689

原创 常用RedisUtils 工具类

【代码】常用RedisUtils 工具类。

2022-12-26 15:53:05 275

原创 Java 8的Lambda表达式中list转map、filter()过滤器、groupingBy分组、sorted+Comparator 排序、求最大,最小值、count()的使用

Java 8的Lambda表达式,它允许把函数作为一个方法的参数,让我们的代码更优雅、更简洁。

2022-11-23 17:21:37 3243

转载 判断当前时间是否在指定时间区间(时间段)内(三种方式)

java判断当前时间是否在指定时间区间(时间段)内(三种方式)

2022-11-10 16:32:49 12853

原创 在idea中如何查看项目使用的spring、spring-boot是什么版本

在idea中如何查看项目使用的spring、spring-boot是什么版本

2022-08-05 23:48:31 13608

原创 当前登录卖家销量前X名的商品,某日没有销售记录的也返回0,日期返回用于制作图表

当前登录卖家,根据搜索的时间段范围得出销量前X名的商品,某日没有销售记录的也返回0,日期返回用于制作图表

2022-08-02 11:45:28 161

转载 POM 标签大全详解

OM 标签大全详解。更多请看:菜鸟教程http://www.runoob.com

2022-07-28 15:53:36 594

原创 java实现一键下载多个各种类型的文件

java实现一键下载多个各种类型的文件

2022-07-08 11:28:46 1787

原创 java实现下载各种类型的文件

java实现下载各种类型的文件

2022-07-08 10:02:33 888

原创 说说java中extends与implements的区别

一、extends表示继承(扩展),只能继承不是声明为final或不是定义为abstract的类,并且只能继承 一个父类(不像C语言可以继承多个),继承后可以使用父类的方法,也可以重写父类的方法、写自己的方法。二、 implements表示实现,可以实现多个接口,一通过重写他们的方法去实现各种功能。实现注意:1、必须实现接口的所有方法(抽象类除外);2、接口中的方法都是抽象的一个类有继承父类、实现多个接口,写法:...

2022-06-29 14:54:00 3612

原创 java格式化处理输入各种不同字符类型的日期时间,并转换为Date、LocalateTime

java格式化处理输入各种不同字符类型的日期时间,并转换为Date、LocalateTime

2022-06-29 11:11:30 1863

原创 字段传的NULL,后端的更新方法用的是mybatis-puls自带的updateById(XXX)方法,没有对该字段更新解决方法

字段传的NULL,后端的更新方法用的是mybatis-puls自带的updateById(XXX)方法,没有对该字段更新解决方法

2022-06-15 17:33:59 492

原创 IDEA彻底删除项目

IDEA彻底删除项目

2022-06-13 11:17:49 5444

生成基础Java代码的项目用到

生成基础Java代码的项目用到

2023-07-25

hudson.freemarker_ide_0.9.14.rar

ftl文件是freemarker模板文件,用freemarker时,常用该文件模板;但是该文件在eclipse编辑时,黑白底的,没有任何提示,下面介绍离线安装方式(在线安装挺多经常失败),去官网下载https://sourceforge.net/projects/freemarker-ide/files/freemarker-ide/ ,可使用我上传的。希望对你有帮助

2021-03-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除