随笔分类 - Java
摘要:报告功能:按业务需要,基于报告模板,实现报告的生成,并导出为word或者pdf。 maven依赖 <!-- apache poi pdf --> <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>fr.opens
阅读全文
摘要:简单介绍下几种java字节码增强技术。 ASM ASM是一个Java字节码操控框架,它能被用来动态生成类或者增强既有类的功能。ASM可以直接产生class文件,也可以在类被加载入Java虚拟机之前动态改变类行为。ASM从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。
阅读全文
摘要:背景 业务系统在应用过程中,有时候要处理“经常变化”的部分,这部分需求可能是“业务规则”,也可能是“不同的数据处理逻辑”,这部分动态规则的问题,往往需要可配置,并对性能和实时性有一定要求。 Java不是解决动态层问题的理想语言,在实践中发现主要有以下几种方式可以实现: 表达式语言(expressio
阅读全文
摘要:背景 我们的系统基本都是前后端分离架构,后端服务主要框架是基于java的spring boot,为了快速的构建新项目,将平时做后端的东西抽出一个开发脚手架。 技术栈 java 21 spring-boot 3.2.1 springdoc-openapi 2.3.0 guava 32 mybatis.
阅读全文
摘要:什么是ThreadLocal变量 ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意: 因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal
阅读全文
摘要:Vertx Vert.x is a tool-kit for building reactive applications on the JVM.(Vertx是运行在JVM上用来构建reactive application的工具集) Vertx Design 响应式的(Responsive):一个响
阅读全文
摘要:Apache HttpClient是Java中经常使用的Http Client,总结下HttpClient4中经常使用的post请求用法。 1 Basic Post 使用2个参数进行post请求: 2 POST with Authorization 使用Post进行Basic Authenticat
阅读全文
摘要:1、背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章《轻量级分布式 RPC 框架》,作者用Zookeeper、Netty和Spring写了一个轻量级的分布式RPC框架。花了一些时间看了下他的代码,写的干净简单,写的RPC框架可以算是一个简易版的dubbo。这个RPC框架虽小
阅读全文
摘要:1、简介 关于空间数据搜索,以前写过《使用Solr进行空间搜索》这篇文章,是基于Solr的GIS数据的索引和检索。 Solr和ElasticSearch这两者都是基于Lucene实现的,两者都可以进行空间搜索(Spatial Search),在有些场景,我们需要把Lucene嵌入到已有的系统提供数据
阅读全文
摘要:本文简要介绍Java并发编程方面常用的类和集合,并介绍下其实现原理。 1、AtomicInteger 可以用原子方式更新int值。类 AtomicBoolean、AtomicInteger、AtomicLong 和 AtomicReference 的实例各自提供对相应类型单个变量的访问和更新。基本的
阅读全文
摘要:JVM框架 Java虚拟机HotSpot的框架: JVM主要组成部分:Class Loader(类加载器)、Runtime Data Area(运行时数据区)、执行引擎(Execution Engine)。 JVM垃圾回收简介 Step 1: Marking GC算法在扫描存活对象时通常需要从Roo
阅读全文
摘要:Spring简介 Spring解决的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,这个是通过Spring的依赖注入机制实现的。 Spring Bean装配 1. IOC的概念以及在Spring容器中如何进行IOC的操作。 IOC:Inversion of Control,控制反转。在Ja
阅读全文
摘要:如果需要对带经纬度的数据进行检索,比如查找当前所在位置附近1000米的酒店,一种简单的方法就是:获取数据库中的所有酒店数据,按经纬度计算距离,返回距离小于1000米的数据。 这种方式在数据量小的时候比较有效,但是当数据量大的时候,检索的效率是很低的,本文介绍使用Solr的Spatial Query进
阅读全文
摘要:环境搭建 1、到apache下载solr,地址:http://mirrors.hust.edu.cn/apache/lucene/solr/ 2、解压到某个目录 3、cd into D:\Solr\solr-4.10.3\example 4、Execute the server by “java -
阅读全文
摘要:Scalable IO in Javahttp://gee.cs.oswego.edu/dl/cpjslides/nio.pdf基本上所有的网络处理程序都有以下基本的处理过程:Read requestDecode requestProcess serviceEncode replySend repl...
阅读全文
摘要:Netty作为一个高性能的异步网络开发框架,可以作为各种服务的开发框架。 前段时间的一个项目涉及到硬件设备实时数据的采集,采用Netty作为采集服务的实现框架,同时使用RabbitMQ作为采集服务和各个其他模块的通信消息队列,整个服务框架图如下: 将业务代码和实际协议解析部分的代码抽离,得到以上一个
阅读全文
摘要:上一篇文章介绍了基于Mybatis对数据库的增、删、改、查。这一篇介绍下关联查询(join query)。 三张表:user article blog 表的存储sql文件: /* Navicat MySQL Data Transfer Source Server : localhost Source
阅读全文
摘要:什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain
阅读全文
摘要:Spring MVC简介 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化
阅读全文
摘要:介绍hessian主页:http://hessian.caucho.com/一个简单的例子学习hessian服务:服务端为Java,客户端为C#。先要准备好C#和Java的第三方类库:http://hessian.caucho.com/Hssiancharp.dllhessian-4.0.37.ja...
阅读全文