自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

转载 记一次Shard JDBC的坑(SQLFeatureNotSupportedException: getObject with type)

环境Mybatis: 3.5.2+JDBC: shardingsphere-jdbc 4.1.1错误日志Error attempting to get column 'create_time' from result set. Cause: java.sql.SQLFeatureNotSupportedException: getObject with type; getObject with type; nested exception is java.sql.SQLFeatureNotSup

2022-04-16 10:46:42 1135 2

原创 关于Redis 指令中文乱码解决方法

关于Redis 指令中文乱码解决方法使用原始指令连接redis使用优化后的指令连接redis使用原始指令连接redis可以看到,里面的中文字段nickname是一个16位进制的,这时候可以尝试在中间加个–raw。使用优化后的指令连接redisredis-cli --raw -h 127.0.0.1 -p 6379 -c -n 20...

2022-01-18 10:30:04 808

原创 JVM内存回收

JVM内存回收对象在Eden区分配大对象直接进入老年代长期存活的对象将进入老年代对象动态年龄判断老年代空间分配担保机制对象内存回收判断对象是否可回收的方法引用计数法可达性分析算法常见引用类型finalize()方法最终判定对象是否存活即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑”阶段,要真正宣告一个对象死亡,至少要经历再次标记过程。如何判断一个类是无用的类如何判断一个常量是废弃常量何为深拷贝浅拷贝?java会出现内存泄漏?什么情况下会发生栈内存溢出?对象在Eden区

2021-09-28 11:12:07 228

原创 jvm对象创建和内存分配机制

jvm对象创建和内存分配机制对象创建的过程类加载检查分配内存分配内存的方法对象内存分配的流程栈内分配对象逃逸分析标量替换分配内存并发问题的解决初始化零值设置对象头对象头分为两个部分对齐填充什么是指针压缩?为什么要进行指针压缩?执行 方法对象创建的过程类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对应到语言层面上讲是,new关键词、对象

2021-09-27 14:57:28 144

原创 JVM内存模型简谈

JVM内存模型JVM的主要组成JVM内存模型图为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?java会出现内存泄漏?什么情况下会发生栈内存溢出?栈溢出StackOverflowError示例字符串常量池八种基本类型的包装类和对象池JVM的主要组成作用:首先通过编译器将.java文件编译成.class文件,类加载器再把字节码文件加载到内存中。将其放在运行时数据区的方法区中,而字节码文件只是jvm的一套指令规范,并不能直接交由底层操作系统去执行,而是需要特定的命令解析器执

2021-09-23 12:53:37 90

原创 Docker Compose部署mysql

部署Mysql新建一个mysql.yml文件在同个目录下执行以下命令创建容器docker-compose -f mysql.yml up -dmysql.yml文件内容version: '3.7'networks: devnet: external: trueservices: mysql: image: mysql:5.7.27 container_name: mysql hostname: mysql restart: unles

2021-08-18 02:13:15 138

原创 Docker Compose部署Kafka

部署Kafka新建一个kafka.yml文件在同个目录下执行以下命令创建容器docker-compose -f kafka.yml up -dkafka.yml文件内容version: '3.7'networks: devnet: external: trueservices: zookeeper: image: bitnami/zookeeper container_name: zookeeper hostname: zookeeper

2021-08-18 02:11:38 164

原创 使用natapp内网穿透,亲测好用!

背景说明在对接微信和支付宝支付或者登录的时候,基本都需要进行回调接口的联调,而我们在本地开发的时候,由于内网地址无法被外网访问,所以第三方服务器无法回调我们的接口地址,所以我们需要一个内网穿透的工具帮我们实现, 才能让外网访问到我们内网的接口地址,这个就是natapp。官方示例链接: natapp官方新手教程文档地址.Java示例编写接口@RestController@RequestMapping("/wechat")@Slf4jpublic class WechatControlle

2021-07-21 17:32:55 376

原创 SpringBoot实现微信登录

1. 查看微信开发文档2. 申请测试号,可以获取到appId和appsecret(下面application.yml参数配置用到)3. 在测试号页面,关注自己的测试公众号。4. 网页授权获取用户信息点击修改,填上自己的域名,可以使用内网穿透工具将本地映射成域名5. 在项目中引入微信开发包和 <dependency> <groupId>com.github.binarywang</groupId>..

2021-07-21 16:57:20 2154

原创 Maven在打包的时候出现Could not find artifact错误怎么办?

原因:多模块项目构建,需要将parent项目先install , 然后才可以打包其他项目;

2021-06-01 20:16:03 4911

原创 CompletableFuture实现异步调用

项目场景:例如:项目场景:删除视频时候异步记录日志代码:自定义线程池@Slf4j@AllArgsConstructor@Configuration@EnableAsyncpublic class ExecutorConfig { private SettingProperties properties; @Bean("asyncExecutor") public Executor asyncExecutor() { ThreadPoolTa

2021-03-08 10:46:25 237

原创 Failed to clean project Failed to delete target

1. 首先打开任务管理器的性能tab页面,点击下方的 “打开资源监视器”2. 搜索 target,将搜索到的结果右键结束进程即可

2020-12-08 14:57:11 745

原创 ES报错:Elasticsearch health check failed

解决方案:添加如下配置即可顺利解决

2020-11-30 18:41:59 2960

转载 Java性能优化的15个细节

1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽量避免随意使用静态变量当某个对象被定义为static变量所引用,那么GC通常是不会回收这个对象所占有的内存,如public clas

2020-08-10 10:54:54 138

原创 Idea将dev分支合并到master分支

当我们在dev分支开发完代码后,需要提交并合并到master分支,这时候我们就需要这几个步骤:首先将dev commit, 然后push到远程dev分支然后本地切换到master分支,拉取最新的master分支代码(多人开发必备)紧接着将dev的代码合并到本地master分支,最后再push到远程master上...

2020-06-30 18:51:02 7996 3

原创 Springboot初始化之CommandLineRunner

我们的Springboot项目在启动后,有时候我们希望程序帮我们马上执行某些代码,可以使用 org.springframework.boot 包提供给我们的CommandLineRunner接口,写一个类实现它,并重写run 方法即可,下面直接上代码:@Component@Order(value = 2)public class CommandLineRunnerTest implements CommandLineRunner { @Override public void r

2020-06-29 16:27:20 206

原创 IDEA编译通过,但是出现红色下划线

举例如图所示,代码是没有问题的,但就是红色警告。解决方法(前提是代码能正常编译)如上图所示,在idea的File目录点击这个即可清除缓存并重启Idea。

2020-06-23 18:00:31 2479 1

原创 @Async注解实现异步调用

说明:在Springboot项目中,使用@Async注解其实很简单,其作用就是在调用方法时加上这个注解,该方法的调用就变成了异步,无需等待执行完成,即可执行后续的代码逻辑。使用:1.首先pom文件引入必要的依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId&g

2020-06-18 11:44:31 266

原创 IO模型之BIO,NIO和AIO

目录了解IO模型BIO(Blocking IO)缺点:应用场景:NIO(Non Blocking IO)应用场景:AIO(NIO 2.0)应用场景:了解IO模型IO模型就是说用什么样的通道进行数据的发送和接收,Java共支持3种网络编程IO模式:BIO,NIO,AIOBIO(Blocking IO)同步阻塞模型,一个客户端连接对应一个处理线程缺点:1、IO代码里read操作是阻塞操作,如果连接不做数据读写操作会导致线程阻塞,浪费资源2、如果线程很多,会导致服务器线程太多,压力太大。应用场景:

2020-06-15 11:17:54 289

原创 IDEA快捷键大全,各类IDEA快捷键

文章目录编辑类快捷键查找、替换类快捷键编译、运行类快捷键Debug快捷键重构快捷键其他类快捷键编辑类快捷键psvm + Tab 生成main方法sout + tab 生成输出语句Ctrl+X / Ctrl + Y 删除一行Ctrl+D 复制一行Ctrl+/ 或 Ctrl+Shift+/ 注释代码Ctrl + Z 撤销Ctrl + Shift + Z 取消撤销Ctrl + C 复制Ctrl + V 粘贴Ctrl + O 重写方法Ctrl + I 实现方法Ctr + shift + U

2020-06-09 10:19:15 140

转载 知道这20个正则表达式,能让你少写1000行代码

转载 :https://www.jianshu.com/p/e7bb97218946

2020-06-05 17:42:39 149

转载 反射是什么? 什么是java的反射?

在 Java 中,并不是所有的类型信息都能在编译阶段明确,有一些类型信息需要在运行时才能确定,这种机制被称为 RTTI,英文全称为 Run-Time Type Identification,即运行时类型识别,有没有一点“知行合一”的味道?运行时类型识别主要由Class类实现。在日常的学习工作当中,有一些知识是我们在读书的时候就能够习得;但有一些知识不是的,需要在实践的时候才能得到真知——这或许就是王阳明提倡的“知行合一”。01、 Class类在Java中,我们常用“class”(首字母为小写的c

2020-06-05 17:32:14 99

原创 十分详细的Kafka入门实战Demo!

目录前言Java客户端 访问kafkaSpring Boot 整合 Kafka前言Kafka的安装在前面有讲过, 具体可以参考下这两篇:Docker部署Kafka入门实战.最简单的Kafka集群搭建方式.Java客户端 访问kafka首先引入maven依赖<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId

2020-06-04 11:57:38 793

原创 最简单的Kafka集群搭建方式!

最简单的Kafka集群搭建方式!前言安装Docker ComposeKafka集群搭建前言本文使用Docker compose 快速搭建kafka集群 , Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器。安装Docker Compose使用Docker compose 的前提是安装了Docker , Docker的安装这里就省略了 , 如果没有安装的可以自行百度安装, 接下来是安装Docker Compose的步骤:首先直接

2020-06-03 21:27:55 483

原创 非常实用的8种idea插件, 还不知道就out了!

IntelliJ IDEA是目前最好最强最智能的Java IDE,默认已经集成了几乎所有主流的开发工具和框架。在这里不讨论Idea和Eclipse的关系,这里介绍几款比较火的的Idea插件。目录translationstatisticRestfulToolkitlombok (强烈推荐)alibaba Java coding guidelines (强烈推荐)sonarLintFree-idea-mybatis (强烈推荐)CodeGlance translatio

2020-06-02 16:09:43 1336

原创 Docker部署Kafka入门实战

目录 启动 测试发送消息 总结 启动 首先拉取zookeeper的镜像 docker pull wurstmeister/zookeeper 启动zookeeper的镜像容器 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper 拉取kafka的镜像 docker pull wurstmeister/kafka 启动运行Zookeeper镜像的实...

2020-06-02 15:04:40 370

原创 EalsticSearch 7.x版本创建索引

es 7.x版本和之前的版本生成索引和mapping有点不同 , 具体生成方法如下:与以往版本少了 , index类型, 总体看来比较简便http://es1-kanjian/personPUT请求, json{ "settings": { "number_of_shards": "1", "number_of_replicas": "0" }, "mappings": { "properti

2020-05-26 13:41:24 241

原创 ES的 must 和 should 搜索失效问题

需求: 在搜索视频的时候 , 我们需要选出isDel 字段为0 和 isPublish字段为1的数据 , 还需要根据搜索的关键词 "搞笑的" 去videoTitle和labels里面查询, 如果在其中一个有出现则需要筛出来一: 使用bool 条件查询 的must 和should 同级别查询的话会失效, 如下所示:{ "from": 0, "size": 10, "query": { "bool": { "must": [ ..

2020-05-19 18:04:42 1731 1

原创 ElasticSearch 分词器查询

首先创建索引 , 并建立字段mapping, 字段hobby使用的是ik_smart分词器记住要用put请求 , 然后index和type 需要和类的注解上面一致 , 否则springDataSearch 查询不出来, 数据body如下:{ "settings": { "index": { "number_of_shards": "1", "number_of_replicas": "0" } },

2020-05-15 13:17:20 2342

原创 Redis 的 ltrim 命令

在做项目的时候遇到一个问题 ,需要将送花的记录读取出来,只显示50条,送花记录我是存在redis里面,用list存每一条记录那么问题来了?如何做到只读取最新的50条记录呢? 随着送花记录越来越多,那个list是不是就越来越大压力咧? 后面根据在网上查找redis的资料发现这个ltrim的命令可以完美解决以上问题!如下例所示://先往flower这个key添加几条记录192...

2020-04-26 02:57:14 2317

原创 什么是JVM?

一:JVM介绍JVM就是虚拟机,他是Java Virtual Machine的英文简称。它是java运行环境的一部分,是一个虚构出来的计算机,它是通过在实际的计算机上仿真模拟各种运算计算机功能来实现的。它可以使编译后的java字节码文件解释成具体平台上的机器码指令执行,所以也使得java语言具有跨平台性。二:JVM生命周期jvm实例的诞生(当启动一个java程序时,一个jvm实例就诞...

2020-04-10 01:40:59 203

原创 Java面试必问之--单例模式(懒汉式)

public class Singleton { private static volatile Singleton instance; private Singleton(){ } public static Singleton getInstance() { if (Objects.isNull(instance)) { ...

2020-03-24 16:08:45 125

原创 批量删除数据库中sleep线程

show processlist ; //查看所有慢查询线程select concat('KILL ',id,';') from information_schema.processlist where user='root'and db = 'your db'; //查出你的数据库中的所有kill id 慢查询查出来的结果 , 复制出来执行 kill ...

2020-03-03 21:10:00 569

原创 ApplicationRunner 接口的作用

SpringBoot 的 ApplicationRunner 接口可以让项目在启动时候初始化一些信息 , 比如 数据库连接 , 或者自定义的一些配置等;步骤 : 重写ApplicationRunner 接口的run方法 , 在run方法中输出你要的配置信息即可.public class InitLoad implements ApplicationRunner { @Overr...

2020-01-06 13:51:44 3842 2

原创 阿里云下安装consul

1 . 官网搜consul ,下载64位的版本2. 上传到云服务器3. 解压 : unzip xxx.zip4../consul 检查是否安装成功5. 执行启动命令 , ip (如果是阿里云服务器 ,需要填私网IP)./consul agent -dev -ui -node=consul-dev -client=192.168.128.1496. 访问 公...

2019-12-05 14:04:25 783

原创 Linux下安装 jdk1.8

先安装 jdk1.8yum install -y java-1.8.0-openjdk-devel.x86_64查看Java版本java -version

2019-12-04 11:50:21 60

原创 使用拦截器获取用户真实IP地址

@Log4j2public class MyInterceptor extends HandlerInterceptorAdapter { private static final String USER_AGENT = "user-agent"; /** * 重写前置拦截器 * @param request * @param response...

2019-12-03 18:01:59 1539

原创 JAVA实现文件下载 , 文件删除

/** * @param filePath 文件将要保存的目录 * @param url 请求的路径 * @return * @从制定URL下载文件并保存到指定目录 */ public static boolean saveUrlAs(String url, String filePath) { int b...

2019-11-20 17:06:11 1056

原创 关于position三个最常用的定位属性

position :relative; //随着浏览器上下拖拽,紧跟着页面一起移动position :absolute; //漂浮到最上面(上面有空间就漂浮上去)position :fixed; //固定在页面(例如:流氓广告固定在右下角,浏览器下拉也如此)...

2019-06-27 19:36:15 571

原创 关于微信重复回调的问题

最近在做一个微信支付的业务,在处理支付成功后续业务的时候,老是出现重复回调的问题,这个问题困扰了我很久。最后发现居然是@RestController的问题,在类注解上面的@RestController会将结果变成Json格式,但是这样和微信的xml结果返回值有冲突,只需要给微信回复一个String格式的xml即可。同时,将@RestController改为@Controller。代码如下: ...

2019-05-28 15:20:50 2379

空空如也

空空如也

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

TA关注的人

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