- 博客(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
原创 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
转载 excel 模板表格中的日期格式为yyyy/MM/dd,表字段类型是date, java 代码如何接收处理
excel 模板表格中的日期格式为yyyy/MM/dd,表字段类型是date, java 代码如何接收处理
2023-02-08 11:52:15
1157
转载 多线程事务怎么回滚?说用 @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
原创 Java 8的Lambda表达式中list转map、filter()过滤器、groupingBy分组、sorted+Comparator 排序、求最大,最小值、count()的使用
Java 8的Lambda表达式,它允许把函数作为一个方法的参数,让我们的代码更优雅、更简洁。
2022-11-23 17:21:37
3243
原创 在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
原创 说说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
hudson.freemarker_ide_0.9.14.rar
2021-03-13
EOLinker可以根据数据库表自动生成接口代码吗?
2021-03-20
请管理帮删除我的提问(下面是链接),顺便这个也删了吧
2021-03-13
配置文件没问题,tomcat7:run启动zookeeper项目一直报5000
2020-11-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人