随笔分类 - Java
大叔也学学java,跟跟风...
摘要:非前后分离项目,后端页面想使用前端vue的mvvm思想,想使用iview强大的交互性,这时,可以使用thymeleaf+vue来实现,thymeleaf提供了后端页面引擎,vue支持在html页面上直接编译执行。 后端依赖 <dependency> <groupId>org.springframew
阅读全文
摘要:Disruptor Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。 Java内置队列的问题 介绍Disruptor之前,我们先来看一看常用的线程安全的内置队列有什么问题。Java的内置队列如下
阅读全文
摘要:早在很多年前,我曾经封装过关于.net unity aop的缓存[https://www.cnblogs.com/lori/p/5169420.html],面向方法的缓存,而如今,spring早已经集成了这个技术,并且得到了广大的应用。 添加依赖 <dependency> <groupId>org.
阅读全文
摘要:主要使用了一个委托的方式 ,函数式接口,将需要处理的业务逻辑以参数的方式传到方法里,而批量处理的方法代码比较固定,所以进行了抽象。 /** * 数据处理辅助类. */ public class DataHelper { static Logger logger = LoggerFactory.get
阅读全文
摘要:对于运行在linux系统下的jboss容器来说,它会有默认的JAVA_OPTS配置,主要用来控制JVM的内存,而还有一点需要注意的,默认情况下,它的字符集不是utf-8,所以在jboss下面的中文是不会被正常显示的,这时,需要我们去修改jboss里的字符集。 默认JAVA_OPTS JBoss Bo
阅读全文
摘要:功能 某个rest接口是公开的,它的feign服务的接口需要授权 重写一个HttpServletRequestWrapper,实现模拟登录之后把header头进行填充 接口请求上下文里的token,通过Feign拦截器转给每个feign请求上下文 完成对feign接口的自动授权访问 # 重写Http
阅读全文
摘要:起因 对于微服务之后发请求,目前使用feign是比较多的,对外部服务也是同样支持的,有时间我们会有这样的情况,post请求时,不是使用的json raw的方式,而是使用了application/x-www-form-urlencoded这种方式,对于feign来说,这种方法的post默认是不被支持的
阅读全文
摘要:起因 首先,对于一个公司,即有.net又有java开发来说,加解密是需要相互打通的,因为,根据莫非定律你迟早会有“.net加密让java解密“的情况。 .net实现 public static string Encrypt(SymmetricAlgorithm algorithm, string p
阅读全文
摘要:Java byte 也提供了一个byte数据类型,并且是基本类型。java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127, byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数。 在计算机中,8位带符号二进制数的取值范围是[-128,
阅读全文
摘要:对于我们自己封装的spi来说,我们可能希望他实现类似于插件的功能,例如你有一个汽车工厂,你目前有提供小汽车,如果你希望他动态支持卡车,公交车,那么spi可以帮你实现这个功能,对于我实现这个SPI功能主要由以下几个步骤组成。 对文件夹目录的监控 对文件夹里jar也的装载,动态类加载器机制实现 通过类型
阅读全文
摘要:WildFly,原名 JBoss AS(JBoss Application Server) 或者 JBoss,是一套应用程序服务器,属于开源的企业级 Java 中间件软件,用于实现基于 SOA 架构的 Web 应用和服务。 WildFly 包含一组可独立运行的软件。 WildFly采用积极的方法进行
阅读全文
摘要:seq_no_primary_term这个错误在聚合操作时出现的问题,这个问题是由于es客户端的版本与服务端版本不兼容的问题,例如:你的客户端是6.8.7,而es服务器版本是6.5.4,这时再进行topHits聚合操作时,就会出现这个错误。 es服务器版本 es客户端版本 <dependency>
阅读全文
摘要:# 项目结构  # 自定义SPI注册 ## 1. 直接复制文件方式 ```java docker cp keycloak
阅读全文
摘要:openfeign介绍 在微服务设计里,服务之间的调用是很正常的,通常我们使用httpClient来实现对远程资源的调用,而这种方法需要知识服务的地址,业务接口地址等,而且需要等他开发完成后你才可以去调用它,这对于集成开发来说,不是什么好事 ,产生了A业务与B业务的强依赖性,那么我们如何进行解耦呢,
阅读全文
摘要:对于BouncyCastle类库(包)来说,他提供了很多加密算法,在与.net和java进行相互加解密过程中,得到了不错的应用,本文以DES3为例,来说一下DES3加解密的过程。 加密过程 明文字符转为byte数组 对密钥进行处理,处理后一般为16或者24字节 对明文进行DES3加密,生成密文的by
阅读全文
摘要:之前写过关于jenkins-nodes来实现的分布式构建的文章,并在实际工作中得到了运用,确实加快的构建的速度;而如果你的项目分布在不同的服务器上,在jenkins构建完成之后,就需要将代码推到目标服务器上运行了,这就用到了Publish Over SSH插件。 配置 在jenkins配置里-》系统
阅读全文
摘要:MANIFEST.MF 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANIFEST.MF文件的内容。 公共内容 Manifest-Version 用来
阅读全文
摘要:对于maven进行项目构建时,我们会使用到插件,对构建过程进行一些控制,加工,加密,重写,依赖打包等工作,一般我们打包时会把phase定为package,意思是说,当进行package动作后,处理你的插件。 多个相同phase的顺序 当我们有多个plugin,并且相同phase时,有时需要考虑到顺序
阅读全文
摘要:对于jar包,如果是为客户私有化部署的,会将jar包给客户,这时就会有源代码泄露的风险,你的一些加密算法,密钥就公开了,所以我们需要为jar包进行加密,或者叫字节码混淆。 classfinal classfinal是一个字节码混淆工具,我们可以直接把它集成到maven里,以插件的形式去使用它,下面是
阅读全文
摘要:maven-shade-plugin可以用来进行打包,并实现在打包过程中的一些过滤、排除、包含、重命名等一系列操作,当我们设计公用项目时,有时在项目时会有一些测试用例,如果在打包时想把这些测试包排除,使用maven-shade-plugin插件是个不错的选择。 打包包含和排除 下面的代码实现了以下几
阅读全文