
Java
文章平均质量分 53
Java语言中各种问题总结
7柒丶
GOIM
展开
-
IDEA启动Java项目,发现JVM内存爆了(Out of Memory Error)
这两个地方都调整下空间大小,如果你是Java项目启动后运行时内存爆了,建议使用Java堆管理工具,查看下内存使用情况,同时给项目增加内存空间。今天启动Java项目的时候发现一直起不来,发现OOM了。应该是IDE给项目分配的JVM堆空间爆了。原创 2024-07-19 13:42:16 · 671 阅读 · 0 评论 -
freemarker生成pdf,同时pdf插入页脚,以及数据量大时批量处理
最近公司有个需求,就是想根据一个模板生成一个pdf文档,当即我就想到了这个远古老东西,毕竟在模板渲染方面还是非常有优势的。准备依赖:我这里不想选版本,直接用spring集成的省事。配置一下的配置然后我们准备下我们的模板----freemarker框架类似于、、、等模板引擎JSP就不用说了吧,基本上开发Java的基本上都会了解开发过然后准备下我们的代码处理逻辑首先是PDF实体数据然后是关联(table)数据然后我们处理我们处理逻辑的代码这里会又有一个问题出现,就是我们一般处理PDF的时候,原创 2024-07-04 12:43:45 · 1514 阅读 · 0 评论 -
Jackson和fastjson解决序列化时字段属性大小写改变的问题
在部分特殊场景下,我们可能会把实体的字段属性改成全部,但是在返回前端时,字段会被序列化成。比如我们有一个这个类属性都是大写:后端接口是这样的然后我们请求后,会发现我们的字段被变成全部小写的。这个就可能会导致前端字段和后端字段大小写不一致的问题。因此为了规避这个问题我们可以改变序列化规则。spring默认使用的是jackson,我们就先说jackson 的解决方法。原创 2024-06-26 14:45:24 · 2114 阅读 · 0 评论 -
JUC之Phaser的使用
Phaser的 onAdvance(int phase, int registeredParties) 方法phase指的是 phaser.arriveAndAwaitAdvance() 方法执行的次数,在创建Phaser的构造参数中,入参指的是参与维护线程的数量;Phaser是并发包juc.concurrent包下的一个关于线程同步和线程通信的一个工具类,类似于。Phaser可以用来根据步骤,等待线程按步骤同时触发执行。原创 2024-01-12 20:48:12 · 568 阅读 · 0 评论 -
ShedLock的使用
通常,我们在公司里的部分对外服务都是多集群多节点部署的。同时我们可能一些拆分的不是很细的服务,里面混杂着一些定时任务。而定时任务中,有些业务为了防止同一时间并发操作,我们就用到了“分布式锁一般最简单的方法我们就是使用redis加锁机制来实现分布式锁。这里我我们使用ShedLock来在定时任务中实现分布式锁。原创 2023-06-12 16:40:33 · 1078 阅读 · 0 评论 -
Jackson中反序列化json字符串时key的格式调整
【代码】Jackson中反序列化json字符串时key的格式调整。原创 2023-02-23 15:35:07 · 408 阅读 · 0 评论 -
Java创建自定义注解所需要使用的几个元注解
如果@Book注解没有被@Document标记,那么被@Book注解标记的DocumentAnnotation类的注解信息就不会包含在java doc html文档中:如下图。2:父注解的周期要比子注解的周期要小或相同(注意:SOURCE(源码) < CLASS (字节码) < RUNTIME(运行)):注解标记其他的注解用于指明标记的注解是可以被自动继承的。注意:此注解只对注解标记的超类有效,对接口是无效的。3:父注解的value的类型是子注解类型的数组。:该注解用于标识,当前注解可以放在哪些位置。原创 2022-09-07 15:06:19 · 252 阅读 · 0 评论 -
ContentType所有类型对比
ContentType类型列表原创 2022-06-27 22:06:25 · 618 阅读 · 0 评论 -
no applicable action for [springProperty] logback异常
logback错误日志no applicable action for [springProperty], current ElementPath is [[configuration][springProperty]]原因logback.xml的加载早于application.yml配置文件,在logback.xml中使用标签来获取配置文件中的变量值,读取不到而报出错误信息。解决方法:1.将logback.xml重命名为logback-spring.xml。2.将logback.xml重命名原创 2022-02-09 16:29:04 · 3110 阅读 · 0 评论 -
AOP获取请求接口所有信息(入参类型、参数、执行时间、当前方法路径、响应参数、响应数据类型)
日志输出实体package com.log;import lombok.AllArgsConstructor;import lombok.Data;import java.util.List;import java.util.Map;@Data@AllArgsConstructorpublic class LiveLog { // 请求路径 private String requestPath; // 请求方法 private String reques原创 2022-01-04 11:09:23 · 6847 阅读 · 0 评论 -
AOP拦截请求获取请求参数和请求方法,以及请求耗时ms
方法一:package com.live.log.aspect;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Component;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework原创 2021-12-30 17:12:06 · 1349 阅读 · 0 评论 -
kafka 启动 失败 kafka.common.InconsistentClusterIdException
异常信息ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)kafka.common.InconsistentClusterIdException: The Cluster ID PI5RJQLhTTKbh2bda3OYMw doesn't match stored cluster Id Some(fOwbKSAzR5Oy6PIt9dAErg) in meta.prope原创 2021-08-29 15:33:16 · 1285 阅读 · 0 评论 -
Zookeeper集群搭建
Zookeeper集群搭建Zookeeper为什么集群节点是基数个?Zookeeper集群配置创建myid文件启动Zookeeper为什么集群节点是基数个?我们知道,在每台机器数据保持一致的情况下,zookeeper集群可以保证,客户端发起的每次查询操作,集群节点都能返回同样的结果。但是对于客户端发起的修改、删除等能改变数据的操作呢?集群中那么多台机器,你修改你的,我修改我的,最后返回集群中哪台机器的数据呢?这就是一盘散沙,需要一个领导,于是在zookeeper集群中,leader的作用就体现出来了原创 2021-08-29 15:20:03 · 447 阅读 · 0 评论 -
明明安装了Java,但是Linux ROOT用户却找不到Java命令
在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubuntu默认是不以root用户登录的,这时echo $PATH可以看到JAVA_HOME已经被设置好了,java命令也可以执行。接下来su root,再输入java命令提示找不到java命令,$PATH中也找不到JAVA_HOME这个路径了。查了很久的资料也没有找到原因,后来偶然切换用户的时候用了su - root命令,这时又可以找到JAVA_HOME这个变量了。对比转载 2021-08-28 22:35:27 · 5966 阅读 · 2 评论 -
The Hystrix timeout of 180000ms for the command xxxx is set lower than the combination
#配置Ribbon的超时时间ribbon: ReadTimeout: 60000 ConnectTimeout: 60000 MaxAutoRetries: 2 MaxAutoRetriesNextServer: 1 hystrix: command: default: execution: isolation: strategy: SEMAPHORE #配置hystrix的超时时间 t原创 2021-08-27 09:55:55 · 1735 阅读 · 0 评论 -
Quartz的简单使用
public class ExecuteJob { public static void main(String[] args) throws SchedulerException { //创建一个scheduler Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();// scheduler.getContext().put("skey", "svalue");原创 2021-08-22 16:45:18 · 103 阅读 · 0 评论 -
记一次循环依赖的异常分析its raw version as part of a circular reference,but not use the final version of the bea
org.springframework.beans.factory.BeanCreationException: Error creating bean with name'publicAccountInfoServiceImpl':Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error原创 2021-07-23 11:21:55 · 496 阅读 · 0 评论 -
记一次apollo包中guava版本问题Preconditions.checkArgument(ZLjava/lang/String;ILjava/lang/Object;)
An attempt was made to call the method com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;ILjava/lang/Object;)V but it does not exist. Its class, com.google.common.base.Preconditions, is available from the following locations: jar:原创 2021-07-14 15:18:24 · 1256 阅读 · 3 评论 -
@ConfigurationProperties详解,以及该注解修饰的实体bean被注入后所有属性为null问题解决
近期遇到了很奇怪的问题就是之前@ConfigurationProperties修饰的实体类被其他类注入之后可以正常使用,到我接手的时候就出现了奇怪的问题,wdnmd o(╥﹏╥)o 我们先看下这个类的使用方式。先说下源码:package org.springframework.boot.context.properties;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import原创 2021-06-18 16:06:26 · 3300 阅读 · 1 评论 -
异步任务@Async 使用和失效原因
因业务需要,经常会遇到主线程中包含其他关联业务,然关联业务的执行结果对主线程的返回结果没有直接影响或无影响。此时,能让主线程更顺畅的执行,并给客户带来好的客户体验,我们一般会将该关联业务做异步处理或类似的处理(如:消息队列)。然后Spring为我们提供了开启异步任务的方法。一、Springboot 使用异步任务1、SpringBootApplication启动类添加@EnableAsync注解;2、@Async使用 (1)类或者方法中使用@Async注解,类上标有该注解表示类中方法都是异步方法,方原创 2021-06-08 17:33:56 · 3225 阅读 · 0 评论 -
Zuul网关、二进制文件请求时遇到的无法解析请求的奇怪问题、以及跨域问题。(为什么request请求中的流只能被读取一次?)
前段时间在做微服务改造升级,公司使用的springboot版本比较老,是1.5.9的老版本,使用的zuul 的版本如下:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId></dependency>然后,还需要对接公司的日志平台、日志平台使用的原创 2021-06-04 11:16:37 · 690 阅读 · 1 评论 -
PowerMock,遇到java.lang.ClassNotFoundException: org.mockito.cglib.proxy.MethodInterceptor
问题使用PowerMock时,遇到java.lang.ClassNotFoundException: org.mockito.cglib.proxy.MethodInterceptor错误。原因版本问题。最终pom.xml内容<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> &l转载 2021-05-21 14:54:13 · 3464 阅读 · 0 评论 -
SpringBoot 动态数据源切换 + 手动数据源切换(最有效的)
手动数据源切换先看下配置类一个是本地的IP一个是我的服务器上docker容器中的mysql数据库。server.port=8080mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImplmybatis.mapper-locations=classpath:mapper/*.xmlspring.datasource.aa.driver-class-name=com.mysql.cj.jdbc.Drivers原创 2020-12-05 22:31:19 · 9090 阅读 · 5 评论 -
面向对象的三大特征:(封装、继承、多态)之 封装 和 继承(Super关键字的使用【全】)
封装封装:通俗来说就是 ** 归纳总结 ** 归纳总结!!! 循环封装过程 方法封装功能 类封装数据 框架封装模块 一段代码使用了三遍,做成一个循环 一个循环使用了三遍,做成一个方法 一个方法使用了三遍,做成一个工具类 一个工具类使用了三遍,做成一个文档 一个文档使用了三遍,做成一篇博客继承: ...原创 2021-04-09 16:37:24 · 210 阅读 · 0 评论 -
方法的重载(Overloading)与重写(Override) Abstract(抽象) 和 Final(最终)关键字
方法的重写方法的重写有两个约束条件:一、(出现在继承中,处于子类中)在子类中,重写的方法必须与父类中的被重写的方法完全相同,局限于(方法的名字,方法的返回值,方法的参数)完全一致。二、子类中重写的方法、访问修饰符可以与父类相同或者大于父类。方法重写后,在调用子类中被重写的方法时,会优先调用子类中的被重写的方法。访问权限修饰符修饰符本类同包非同包子类其他priv...原创 2021-04-09 16:36:59 · 993 阅读 · 0 评论 -
Linux安装Java环境
安装Java环境之前,首先需要准备一个Java的安装包Java8下载地址注意:这里下载的时候,千万要下载我选中的这个框,如果下载的后缀带有linux-aarch64的压缩包,安装完后会出现如下问题:bash: /usr/local/java/jdk1.8.0_271/bin/java: 无法执行二进制文件: 可执行文件然后使用 tar -zxvf 下载的文件名字 要解压的路径解压过后配置环境变量sudo gedit /etc/profile环境变量export JAVA_HOME原创 2021-03-23 22:15:51 · 640 阅读 · 1 评论 -
Linux Ubuntu安装maven
maven下载地址主要步骤:下载压缩包解压缩转移至固定目录(可选)配置环境变量检查是否安装成功另一种安装方法 是直接使用命令:sudo apt-get install maven安装过程:1、下载压缩包$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz2、解压缩$ tar zxvf apache-maven-3.6原创 2021-03-23 20:03:26 · 588 阅读 · 1 评论 -
MySQL数据库存放二进制图片,同时从数据库中取出返回给前端
数据库字段创建在此之前,先科普几个数据库的字段类型:数据库中有BLOB类型的字段用于存储二进制数据MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。MySQL的四种BLOB类型类型 大小(单位:字节)TinyBlob 最大 255Blob 最大 65KMediumBlob 最大 16MLongBlob 最大 4G,在此我们选择MediumBlob 作为存储字段的类型。当然在原创 2021-03-23 11:01:24 · 1542 阅读 · 1 评论 -
Arrays.asList(T... t)为什么在从数组转成list的时候添加数据失败?java.lang.UnsupportedOperationException (源码剖析)附带解决方法
Arrays.asList(T… a) 我先来介绍一下这个方法,这个方法是在 java.util 工具包中的 Arrays 工具类,里面有许多对数组/集合进行操作的方法。asList(T… a)就是其中的一个,这个方法可以让我们避免一些麻烦的操作,比如我们有一个数组,而我们又想通过集合的方式进行操作的时候,这个时候就可以使用这个方法,将数组快速地转变成为集合。 &n原创 2021-03-01 15:13:27 · 338 阅读 · 0 评论 -
成员内部类、静态内部类、匿名内部类、
成员内部类成员内部类:顾名思义、成员中的类(类种类)。话不多少先上代码介绍:class Demo { class Demo1 { }}内部类写在一个类中,同时依赖于外部类而存在。...原创 2021-02-18 10:07:50 · 216 阅读 · 0 评论