Java
文章平均质量分 60
写代码的蓝胖子
搬砖小码农
展开
-
jackson常用操作
jackson常用操作原创 2023-09-03 22:03:29 · 255 阅读 · 0 评论 -
通过es索引生命周期策略删除日志索引
在es 7.x版本之后,多了个索引生命周期的概念,可以一系列的设置,给新生成的索引绑定生命周期策略,到期后,索引自动删除。也可以通过linux定时任务实现,请查看另一篇文章。原创 2023-09-02 17:56:06 · 1551 阅读 · 0 评论 -
通过linux定时任务删除es日志索引
项目用上了elk,产生的日志索引要定时,其一个方法,通过linux定时任务,调用es接口删除索引。原创 2023-09-02 17:08:19 · 1201 阅读 · 0 评论 -
Mybatis PostgreSQL查询带时区字段报错
因为带时区的类型PGSQL返回的类型是OffsetDateTime。原创 2023-05-08 17:27:42 · 1291 阅读 · 0 评论 -
Spring Cloud Gateway从数据库读取路由配置
由于运维特殊性,我们没有使用配置中心,仅仅只是使用了Nacos作为注册中心。业务场景对我们提出了需求,动态更新网关路由信息而不重启应用。考虑之下,我们选择了从数据库读取网关路由配置,更新配置到gateway应用。我们先后经历2个版本,一是直接实现RouteDefinitionRepository接口;二是更新路由配置信息到GatewayProperties bean,通过RefreshRoutesEvent刷新路由配置信息。原创 2022-12-01 22:34:34 · 2490 阅读 · 0 评论 -
Spring Cloud Gateway从数据库读取并更新Cors配置
由于运维特殊性,我们没有使用配置中心,仅仅只是使用了Nacos作为注册中心。目前项目gateway网关有个小需求,需求从数据库中读取Cors跨域配置,刷新到应用中。原创 2022-11-27 20:08:31 · 1082 阅读 · 0 评论 -
SpringMVC requestBody和responseBody重复获取
SpringMVC requestBody和responseBody重复获取最近有个需求,要根据响应结果来判断,是否需要保存requestBody的内容到数据库。想法使用拦截器HandlerInterceptor,拦截需要处理的url,根据响应结果判断是否需要保存内容到数据库。遇到问题requestBody不能重复获取问题responseBody 在HandlerInterceptor afterCompletion无法获取到内容其实际都是因为requestBody、responseBody原创 2021-09-27 21:57:09 · 1320 阅读 · 1 评论 -
Lucene使用IK中文分词
Lucene使用IK中文分词环境Lucene 6.xIKAnalyzer2012_u6IK中文分词配置Lucene 6.x使用IK分词需要继承Analyzer、Tokenizer,重新编写逻辑配置,再使用。分别配置子类IKAnalyzer6x、IKTokenizer6xIKAnalyzer6x.javapackage com.liuyu.lucene.ik;import org.apache.lucene.analysis.Tokenizer;import org.apache.lu原创 2021-04-22 00:00:08 · 615 阅读 · 0 评论 -
【JVM笔记】对象生死存亡
对象生死存亡java虚拟机要对堆内存的对象进行回收时,要先判断对象的存活状态,只有对象不可用时,才能对此进行垃圾回收,释放内存中的空间。可怎么确定对象是否可用呢?有引用计数算法,可不能解决对象互相引用的问题,实际这2个对象已经不再被访问,但由于它们相对引用,引用计数都不为0 ,该策略不可行。Java是通过可达性分析来判定对象是否存活的可达性分析算法(Reachability Analysis)算法基本思路是通过一系列的称为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索走过的原创 2021-04-17 17:35:39 · 109 阅读 · 0 评论 -
Ribbon负载均衡策略(2)
Ribbon负载均衡策略(2)Ribbon负载均衡策略(1)负载均衡策略ClientConfigEnabledRoundRobinRule这个策略一般不直接使用,它的内部定义了一个RoundRobinRule策略,作为继承策略使用,当子类中做些高级的策略无法实施时,可以使用父类的实现作为备选。如BestAvailableRulepublic class ClientConfigEna...原创 2020-04-18 18:58:07 · 299 阅读 · 0 评论 -
LeetCode 移除元素
LeetCode 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。实例class Solution { public int removeElement(int[] ...原创 2020-04-07 23:08:48 · 140 阅读 · 0 评论 -
【笔记】使用RestTemplate发送http请求
RestTemplate restTemplate=new RestTemplate(); List<HttpMessageConverter<?>> converterList = restTemplate.getMessageConverters(); converterList.remove(1); // 移除原来的转换器 //...原创 2019-11-18 16:12:16 · 260 阅读 · 0 评论 -
HBase过滤器基本概念
HBase过滤器过滤器可以根据列族、列、版本等更多的条件来对数据进行过滤,基于HBase本身提供的三维有序(主键、列、版本有序),这些过滤器可以高效地完成查询过滤的。使用过滤器至少需要两类参数:操作符HBase提供了枚举类型的变量来表示这些抽象的操作符LESS (<)LESS_OR_EQUAL (<=)EQUAL (=)NOT_EQUAL (!=)GREATER...原创 2019-08-11 22:54:54 · 417 阅读 · 0 评论 -
HBase过滤器工具类
HBase过滤器工具类package com.liuyu.utils;import org.apache.hadoop.hbase.CompareOperator;import org.apache.hadoop.hbase.filter.*;import java.util.Collection;/** * @author huangliuyu * @description...原创 2019-08-09 17:41:53 · 455 阅读 · 0 评论 -
【缓存算法】LRU 最近最少使用
LRU是Least Recently Used,最近最少使用。LRU思想固定缓存大小,需要给缓存分配一个固定的大小。每次读取缓存都会改变缓存的使用时间,将缓存的存在时间重新刷新。需要在缓存满了后,将最近最久未使用的缓存删除,再添加最新的缓存。Java实现HashMap + 双向链表/** * @author huangliuyu * @description LRU 最...原创 2019-05-10 15:07:12 · 634 阅读 · 0 评论 -
Ribbon负载均衡策略(1)
Ribbon负载均衡策略AbstractLoadBalancerRule抽象类里定义了负载均衡器ILoadBalancer,该对象能够在具体实现选择服务策略时,获取到一些负载均衡中维护的信息,来作为分配依据,并以此设计一些算法实现针对特定场景的高效策略。public abstract class AbstractLoadBalancerRule implements IRule, ICli...原创 2019-03-19 23:07:22 · 354 阅读 · 0 评论 -
【JVM笔记】类加载器·双亲委派模型
类加载器·双亲委派模型从Java虚拟机的角度来看,只存在2种不同的类加载。一是启动类加载器(Bootstrap ClassLoader),作为虚拟机的一部分;二是所有其它类加载器,独立于虚拟机外部,并且继承于抽象类java.lang.ClassLoader。划分从可以Java开发人员角度来看,类加载器可更细分点。启动类加载器(Bootstrap ClassLoader)负责将存放&amp;amp;...原创 2018-10-23 23:22:51 · 275 阅读 · 0 评论 -
Java类内部执行顺序
静态代码块与父子类构造方法先上代码class A { static { System.out.print("1"); } public A() { System.out.print("2"); }}class B extends A { static { System.out.print(...原创 2018-03-27 23:11:03 · 773 阅读 · 0 评论 -
【安全问题】加密会话(SSL)Cookie 中缺少 Secure 属性
最近项目上线,开启https(ssl)后,Cookie出现缺少Secure 属性的情况。因为Cookie少了Secure属性,没有告知浏览器采用https方式来传输信息,所以在可以被外界获取到用户标识特征,如 JSESSIONID session会话ID 。session cookie用户首次访问Web站点时,Web服务器对用户一无所知,但希望用户再次访问的时候,能根据特征识...原创 2018-05-03 23:42:12 · 19983 阅读 · 0 评论 -
Http Headers模块
Http Headers模块包括General、Response Headers、Request Headers,如果是Post请求还有formData先上图,立个标志,慢慢理解了解各个参数,后面补上说明。原创 2018-04-26 16:10:13 · 687 阅读 · 0 评论 -
Nginx 配置反向代理
Nginx 配置反向代理项目中有solrcloud的运用实例,这里拿来做反向代理的配置,solrJ客户端直接请求solr节点。用nginx为solrcloud的三个节点做统一入口处理。nginx与solr节点分布的情况如下。 目的: solrJ访问192.168.22.237/solr,通过nginx反向代理solrcloud下的其中一个节点,如192.168.22.237:6501...原创 2018-04-27 10:05:11 · 538 阅读 · 0 评论 -
【JVM笔记】Java内存区域
运行时数据区域JVM 在执行Java程序过程中,会把它所管理的内存划分为不同的数据区域,为每个数据区域定义不同的概念模型。 不过也仅是概念模型,各种虚拟机可能通过一些更高效的方式去实现。 程序计数器 Program Counter Register它是一块内存较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机概念模型里,字节码解释器工作时就是通过改变程序计数器的...原创 2018-05-20 11:41:56 · 170 阅读 · 0 评论 -
【JVM笔记】Java堆溢出
场景模拟通过设置VM 参数head内存大小,并且不扩展。编写一个方法,无限的new 对象。编写代码import java.util.ArrayList;import java.util.List;/** * VM Arags: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=G:\WorkSpa...原创 2018-05-20 17:31:55 · 188 阅读 · 0 评论 -
DBCP 1.X 导致的生产环境部署问题
应用部署到生产环境,启动后,首次登录没问题。再过几分钟或者说再次登录,却出现登录没响应、查询数据界面没响应等数据库查询没响应的问题,但奇怪的是后台没任何不报错。 初步怀疑是数据库会话数爆满引起的,通过LambdaProbe监控工具,发现应用不响应的时候,存在线程阻塞的情况。 于是打印线程快照,如下"http-80-2" daemon prio=10 tid=0x...原创 2018-02-20 19:11:32 · 563 阅读 · 0 评论 -
Executors线程池类型
Java提供一个Executors线程池工厂类,提供4类线程类型作为ExecutorService的实例。具体可查看Java API。newCachedThreadPoolpublic static ExecutorService newCachedThreadPool() 创建一个可根据需要创建新线程的线程不,但是在以前构造的线程可用时将征用它们。如果现有线程没有可用的,则创...原创 2018-06-07 10:00:44 · 209 阅读 · 0 评论 -
【JVM笔记】类加载过程
类加载时机加载—&amp;gt;验证—&amp;gt;准备—&amp;gt;解析—&amp;gt;初始化—&amp;gt;使用—&amp;gt;卸载 验证、准备、解析为连接阶段。 加载、验证准备、初始化和卸载这个阶段顺序是确定的。加载加载是类加载过程的一个阶段,这个过程中,虚拟机需要完成以下3件事。通过一个类的全限名来获取定义此类的二进制字节流将这个字节流所原创 2018-06-27 11:10:05 · 151 阅读 · 0 评论 -
用jackson序列化No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer
jackson序列化用jackson将对象序列化字符串的时候出现了下面No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer的异常,用阿里的fastjson序列化不会。Caused by: com.fasterxml.jackson.databind.JsonMapp...原创 2018-09-10 13:09:42 · 2910 阅读 · 0 评论 -
Spring AOP声明式事务
Spring AOP声明式事务Spring AOP声明式事务传统spring配置SpringBoot配置总结Spring AOP声明式事务Spring AOP声明式事务可以帮我们自动管理事务,在业务操作前后加入事务开始和提交,根据约定的命名规则,进行处理。哪些使用事务,哪些不使用事务,使我们专注于业务处理,提高我们开发效率。它是代理模式的设计思想。传统spring配置 &amp;amp;amp;lt;!-- ...原创 2018-09-19 23:43:08 · 1671 阅读 · 0 评论 -
【JVM笔记】类初始化的规范
类的生命周期大概地了解一下类的生命周期及发生顺序。类初始化的规范Java虚拟机规范严格地规定 有且只有 5种情况必须立即对类进行“初始化”。如果类没有进行过初始化,则需要触发其初始化。遇到new、getstatic、putstatic或invokestatic这4条字节码指令睦,如果类没有进行过初始化,则需要触发其初始化。常见的java代码场景是:new 实例化对象、读取或设置类...原创 2018-10-14 22:07:00 · 136 阅读 · 0 评论 -
【JVM笔记】Class类文件结构
Class类文件结构Class文件是一组以8位字节为基础单位的二进制流,各个数据项严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符。Class文件格式采用一种类似于语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数(u)和表(_info)。SmartyPantsSmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:...原创 2018-10-14 23:09:15 · 163 阅读 · 0 评论 -
【JVM笔记】类与类加载器
类与类加载器对于任意一个类,都需要由加载它的类加载器和这个类本身一同确定其在java 虚拟机中的唯一性,每一类加载器,都拥有一个独立的类名称空间。不是同一类加载器加载的类,会对类的Class对象的equals()、isAssignableFrom()、isInstance(),以及instanceof关键字。instanceof关键字影响如下package jvm;import jav...原创 2018-10-23 22:22:52 · 112 阅读 · 0 评论 -
浏览器下载文件名与源不一致问题
浏览器下载文件名与源不一致问题最近项目里碰到下载文件名与原来不一致的问题。 比如说 原来是空格的,下载后变成了加号;原来是加号的,下载后变成空格。问题代码void defaultDownload(String id,String wjlxType,HttpServletResponse response){ /** *to do.... ...原创 2018-04-02 16:28:14 · 2399 阅读 · 1 评论