Java
文章平均质量分 58
首席IT民工
编程才是真爱^_^
展开
-
读取API文档获得前后端对接信息
通过api设计信息获取前后端对接的任务列表原创 2022-06-16 11:25:44 · 206 阅读 · 0 评论 -
SpringBoot自动进行单元测试
通过反射,依据swagger自动进行测试原创 2022-06-16 11:20:20 · 1019 阅读 · 0 评论 -
Garbage-First Garbage Collection
David Detlefs,Christine Flood,Steve Heller,Tony PrintezisABSTRACTGarbage-First is a server-style garbage collector,targeted for multi-processors with large memories,that meets a soft real-time goal with high probability,while achieving high throughout.Wh翻译 2021-03-11 16:21:04 · 636 阅读 · 1 评论 -
jmh使用笔记
文章目录pom.xmljava测试方法main方法类注解运行结果解析troubleshootingjavax.annotation.Generatedconnect failed: Connection refusedAddress already in usemaven clean报错pom.xmlpom文件可以通过archtype来生成,如果是java11这样的高版本需要加入javax.annotation-api,最终得到的代码如下<!--Copyright (c) 2005, 2014原创 2020-11-09 13:41:57 · 453 阅读 · 1 评论 -
SpringBoot中的Transaction研究(五)TransactionAttributeSource
文章目录原创 2020-11-02 15:43:45 · 1405 阅读 · 0 评论 -
SpringBoot中的Transaction研究(三)TransactionInterceptor
文章目录概略详细研究PlatformTransactionManager的情况prepareTransactionInfoTransactionInfo.bindToThreadcompleteTransactionAfterThrowingcleanupTransactionInfo概略站在全局的角度来看如下图,TransactionInterceptor借助于AOP使用TransactionManager实现了事务,主要是完成了try-catch语法。整个操作的核心代码是在TransactionA原创 2020-11-02 11:54:36 · 2301 阅读 · 0 评论 -
SpringBoot中的Transaction研究(四)Transactional
文章目录SpringBoot中的Transaction研究(一)TransactionManagerSpringBoot中的Transaction研究(二)PropagationBehavior原创 2020-11-02 11:47:01 · 767 阅读 · 0 评论 -
SpringBoot中的Transaction研究(二)PropagationBehavior
文章目录从外在要求的视角从相应策略上看从当前状态来看required、required_new、nestedsupportednot_supportedmandatorynever从外在要求的视角Propagation可以分为两大类,一类对于当前transaction有要求,一类没有要求,其中前者又可以分为要求有和要求无两个小类,第一个小类就是MANDATORY,而第二个小类就是NEVER.其中无要求又可以分为2*2=4种情况,其中有->无,无->有这种情况太奇怪就没有了从相应策略上看原创 2020-10-28 17:25:30 · 504 阅读 · 0 评论 -
SpringBoot中的Transaction研究(一)TransactionManager
文章目录TransactionManager Diagram接口定义getTransactionTransactionDefinitiongetPropagationBehaviorgetIsolationLevelisReadOnlycommitrollbackAbstract帮助类getTransactioncommit & rollback实现类DataSourceTransactionManager实现类JtaTransactionManagerTransactionManager Dia原创 2020-09-23 11:06:36 · 6034 阅读 · 1 评论 -
将Http请求转换为RabbitMQ消息
import com.google.common.base.Charsets;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.stereotype.Component;import org.springframework.util.Stre.原创 2020-09-16 15:21:47 · 1213 阅读 · 0 评论 -
SpringBoot集成RabbitMQ使用Json格式
RabbitMQ默认使用的java的序列化工具,这里在SpringBoot中改为json格式import org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer;import org.springframework.amqp.rabbit.connection.ConnectionFactory;import org.springframework.amqp.rabbit.core.RabbitTemplate;imp原创 2020-09-16 15:08:32 · 1502 阅读 · 1 评论 -
Json与java对象转换工具(Gson&jackson)
文章目录GsonjacksonJsonFormatJsonDeserializeGsonsetDateFormat用于设置java.util.Date类型的格式registerTypeAdapter则是用于LocalDateTime类型private final Gson gson=new GsonBuilder().setDateFormat("yyyy-MM-dd hh:mm:ss") .registerTypeAdapter(LocalDateTime.clas原创 2020-09-16 15:02:40 · 211 阅读 · 0 评论 -
Xml与java对象转换工具(XStream&JAXBContext)
文章目录XStream自定义类型转换(以java.util.Date&LocalDateTime为例)JAXBContextXStream自定义类型转换(以java.util.Date&LocalDateTime为例)XStream xStream=new XStream(new Xpp3DomDriver(){ @Override public HierarchicalStreamWriter createWriter(Writer ou原创 2020-09-16 14:47:22 · 452 阅读 · 0 评论 -
SpringBoot中自定义类型转换(以LocalDateTime为例)
文章目录JacksonConverterJacksonimport com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.DeserializationContext;import com原创 2020-09-04 10:46:22 · 2240 阅读 · 0 评论 -
Reactive实战(二)Database
文章目录前面的Reactive实战(一)WebFlux介绍了如何操作Mono和Flux,可以看出来这些操作都需要一个源头,那么这个源头是从哪儿来,就是DatabaseClient了原创 2020-08-28 11:04:53 · 292 阅读 · 0 评论 -
Reactive实战(一)WebFlux
文章目录Reactive编程整个感觉都是充满了回调的使用,这个函数式编程的感觉和流的处理也很像。首先我们要先看这个框架再解决什么问题,因为它带来了很多问题,就要看看这种转变什么划得来。其实它的底层是使用了Netty的NIO来解决IO阻塞的问题,也就提高了系统的吞吐能力,但是如果系统本身问题是计算资源不足那么就没什么效果。所以我觉得它比较适合查询操作,因为它的业务比较简单,不怎么消耗CPU,同时又有很大的吞吐需求。至于为什么这个框架可以提高吞吐,可以参见Netty的相关资料,另外提升多少,网上也有人做过原创 2020-08-28 11:02:14 · 1954 阅读 · 0 评论 -
日期格式化性能比较
public static void main(String[] args) { List<LocalDate> localDates= Lists.newArrayList(); for(long i=0;i<10000000;i++){ localDates.add(toLocalDate(toDate(RandomUtils.nextLong(0,System.currentTimeMillis())))); }原创 2020-08-17 11:23:46 · 200 阅读 · 0 评论 -
揭秘java虚拟机(五)类的生命周期
文章目录类的整个生命周期一般如下:加载链接验证准备解析初始化使用卸载原创 2020-08-10 11:01:20 · 183 阅读 · 0 评论 -
OpenJDK源码阅读-Oop&Klass
文章目录oop-klassOBJECT hierarchymetadata hierarchyklass hierarchyoopclassDiagramdescriptionklassclassDiagramcriptionoop-klass当C,C++和Delphi等程序被编译成二进制程序后,原来所定义的高级数据结构都不复存在了,当windows/linux等操作系统(宿主机)加载这些二进制程序时,是不会加载这些语言中所定义的高级数据结构的,宿主机压根就不知道原来定了那些数据结构,哪些类,所有的数原创 2020-08-05 16:13:59 · 955 阅读 · 0 评论 -
揭秘java虚拟机(二)字节码
文章目录class文件MagicNumberclassFileParser.cpp大端和小端VersionclassFileParser.cpp常见versionConstant_poolclassFileParser.cppConstant Pool EntriesAccess_flagclassFileParser.cppThis_classSuper_classInterfacesFieldsclassFileParser.cppfields的结构标识字符MethodsclassFileParser.原创 2020-06-29 11:26:44 · 669 阅读 · 0 评论 -
揭秘java虚拟机(三)JVM指令集
目录nop处理栈算数运算强制类型装换方法调用官方说明是jvms14.pdfnop0x00 无操作处理栈说明 String int float boolean char short long double xconst_n x类型的n进栈 0x01aconst_nullnull进栈 0x02 iconst_m1 -1进栈 ...原创 2020-06-29 11:10:59 · 360 阅读 · 0 评论 -
揭秘java虚拟机(一)虚拟机
文章目录虚拟机常见汇编数据传输算术运算指令逻辑运算指令串指令程序转移指令JVM指令数据交换函数调用运算指令控制转移对象创建&类型转换方法调用汇编保存栈基并分配新栈初始化数据压栈调用返回eip & ebpC虚拟机要让CPU执行一段代码,只需将CS:IP段寄存器指向代码入口处即可.CS寄存器保存段地址,IP保存偏移地址常见汇编数据传输mov1//将自然数1放入eax寄存器mov1 1 %eaxpop//将栈顶数据弹出至eax寄存器pop %eax算术运算指原创 2020-06-24 14:52:38 · 385 阅读 · 0 评论 -
List懒加载(批量模式)
/*** 继承自AbstractList,不支持修改操作.如果进行了remove,下面就难以通过indexOf找到对应的value了*/public class LazyList<K,T> extends AbstractList<T>{ private List<T> values; LazyList(Function<List<K>, List<T>> batchLoader, List...原创 2020-05-21 14:47:21 · 488 阅读 · 0 评论 -
Jetbrains那些我没用过的特性(二)
1. 重构类、文件、符号,Action 搜索IntelliJ IDEA(以下简称 IDEA) 中的搜索可以分为以下几类类搜索,比如 Java,Groovy,Scala 等类文件 文件搜索,类文件之外的所有文件 符号搜索,包括接口名,类名,函数名,成员变量等 Action 搜索,找到你的操作 字符串搜索及替换在 IDEA 的世界里,搜索无处不在,你几乎可以瞬间找到你想要找到的任何一...转载 2020-01-09 10:06:45 · 609 阅读 · 0 评论 -
Jetbrains那些我没用过的特性(一)
1. stream代码自动生成更智能IDEA对java代码的自动化生成令人惊叹,一个alt+enter或者alt+/可以省去很多敲打键盘的操作。 本次更新对stream api的支持更加智能化,如上图,如果对一个list filer掉指定的type之后,在后续的map操作中,自动给你加上一个cast。2. while循环优化IDEA智能检测代码逻辑,将原本丑陋的代码自动改写,while...转载 2020-01-09 10:04:10 · 465 阅读 · 0 评论 -
Tomcat暂停"BUG"
最近一直碰到一个BUG,解决后真让人无语首先说明下,我是用eclipse开发,JDK7,Tomcat7tomcat是通过bat文件启动,通过命令行窗口查看反馈tomcat自动更新eclipse的的项目文件 以下是BUG:在java文件更改后Tomcat并没有自动加载前台有时会一直显示等待响应甚至有的时候tomcat暂停暂停后用ctrl+c继续执行,但有时会发生内原创 2014-01-17 15:01:45 · 1431 阅读 · 0 评论 -
个性化定制xml/json序列化
目录 XStream xStream=new XStream(new Xpp3DomDriver(){ @Override public HierarchicalStreamWriter createWriter(Writer out) { return new PrettyPrintWriter(out){ @Override protecte原创 2020-05-12 13:20:45 · 196 阅读 · 0 评论 -
Linux下java环境配置
JAVA_HOME检查安装完java后使用下面命令看下echo $JAVA_HOME如果显示空白行则表示还没设置。寻找下面讲如何确定JAVA_HOME应该设置在什么位置。whereis java显示如下java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz说明/usr/bin/java是执行jav...原创 2020-04-29 10:33:53 · 424 阅读 · 0 评论 -
Spring BeanRegistry
import org.apache.commons.lang3.StringUtils;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanDefinition;import org.springframework.beans.factory...原创 2020-04-10 11:35:27 · 262 阅读 · 0 评论 -
Dynamic Compiler动态编译源代码(无需File)
import com.google.common.base.Charsets;import com.google.common.base.Joiner;import com.google.common.collect.Lists;import javax.tools.*;import java.io.ByteArrayOutputStream;import java.io.File...原创 2020-04-10 11:31:35 · 397 阅读 · 0 评论 -
MockController代码自动生成
import org.apache.commons.lang3.StringUtils;import org.springframework.core.GenericTypeResolver;import org.springframework.core.MethodParameter;import org.springframework.core.ResolvableType;impo...原创 2020-04-09 16:49:40 · 369 阅读 · 2 评论 -
基于Spring查找所有controller
import org.springframework.core.io.Resource;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.core.io.support.ResourcePatternResolver;impor...原创 2020-04-09 15:25:46 · 689 阅读 · 1 评论 -
intellij下maven的使用
初始情况文件Main.javapublic class Main { public static void main(String[] args) { }}pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2020-03-06 14:55:08 · 1106 阅读 · 0 评论 -
commons-cli使用笔记
背景项目需要做一个小工具,不想依赖太多的东西就没有创建SpringBoot项目,但是启动的时候又需要传入一些参数,于是就借助于commons-cli来读取参数commons-cli这个工具有两个版本,根据官网说cli有很多bug,而cli2又在开发阶段(不知道还在开发不)。但是我的功能不是很复杂,就仍然基于cli来开发。代码pom.xml<?xml version="1.0" ...原创 2020-03-05 14:24:05 · 711 阅读 · 0 评论 -
Groovy学习笔记
publicMethod&Field默认是public的Rangedef repeat(val){ for(i in 0..5){ println val }}上面的代码将打印6次,原因是前后都是close的默认参数值def repeat(val, repeat=5){ for(i in 0..<repeat){ println val }}Li...转载 2020-01-20 15:17:00 · 153 阅读 · 0 评论 -
Jpa For Flink
pom.xml <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.8</version> </dependency> <de...原创 2020-01-10 12:50:21 · 588 阅读 · 0 评论 -
向set,map放入重复数据的测试.结论为新数据
import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;public class MapAndSet { public static void main(String[] args) { Set set = new HashSet(); Map ma原创 2014-01-17 08:57:28 · 1418 阅读 · 0 评论 -
WebService之Axis2快速入门: Spring与axis整合发布为WebService
在现今的Web应用中经常使用Spring框架来装载JavaBean。如果要想将某些在Spring中装配的JavaBean发布成WebService,使用Axis2的Spring感知功能是非常容易做到的。在本文的例子中,除了\webapps\axis2目录及该目录中的相关库外,还需要Spring框架中的spring.jar文件,将该文件复制到\webapps\axis2\WEB-INF\li转载 2015-12-09 15:19:19 · 656 阅读 · 0 评论 -
如何用eclipse远程调试jboss
JBoss是一个非常流行的J2EE应用服务器,当应用并不是部署在本地的时候,我们该如何调试远程机器上的应用呢?下面小编将教大家如何在eclipse中调试远程JBoss中的war程序,其它的比如ejb是一样的道理。工具/原料eclispejboss方法/步骤在eclipse中新建名字叫“web转载 2016-04-28 08:53:48 · 528 阅读 · 0 评论 -
Jboss5.1类加载及配置文件读取解密
一般web项目部署在jboss的deploy目录下,其依赖的jar一般在web-inf\lib 里面(以下称warlib),但jboss还提供了一个lib文件即和deploy平行的目录(以下称defaultlib),这里面也可以放jar,按照网上的说法当war里需要的类在自身目录里找不到时就会去defaultlib里面去找(但实际项目中发现并非总是如此,例如涉及xml解析和spring的一些东西的原创 2016-05-08 23:14:31 · 2374 阅读 · 0 评论