随笔分类 -  java

摘要:普通类 getName: cn.lay.GetNameDemo getSimpleName: GetNameDemo getCanonicalName: cn.lay.GetNameDemo 普通类型的getName和getCanonicalName是没有区别的,getSimpleName没有包名 阅读全文
posted @ 2020-01-13 10:09 __lay 阅读(644) 评论(0) 推荐(0)
摘要:源码分析 java作为一个把interface看得很重要的语言,发展出了各种自动发现机制。比如eureka服务发现,slf4j日志自动发现日志实现,亦或者jdbc定义的接口自动根据URL选择对应的jdbc实现等。自动发现机制将接口和实现很好地隔离开,使得代码高度解耦合,是一种非常好地设计思路。 前面 阅读全文
posted @ 2020-01-12 16:19 __lay 阅读(538) 评论(0) 推荐(0)
摘要:SPI SPI全称是service provider interface,是Java定义的一套服务发现机制,如图: 调用方只需要面向接口,接口的实现由第三方自己去实现,服务启动的时候会自动去发现该服务接口的实现并加载。 代码示例 包 定义一个接口 随意定义一个接口Speaker SpiTest Se 阅读全文
posted @ 2019-07-16 14:19 __lay 阅读(450) 评论(0) 推荐(0)
摘要:JasperReport 在了解DynamicJasper之前不得不先了解一下jasperReport,jasperReport是基于Java的一个开源的报表工具,它使得你可以在Java环境下像其它的IDE中一样生成报表,它是当前Java开发者中最常用的报表工具。 简单来说,jasperReport 阅读全文
posted @ 2018-10-26 23:47 __lay 阅读(1663) 评论(0) 推荐(0)
摘要:以前的项目中很少去思考SQL解析这个事情,即使在saas系统或者分库分表的时候有涉及到也会有专门的处理方案,这些方案也对使用者隐藏了实现细节。 而最近的这个数据项目里面却频繁涉及到了对SQL的处理,原来只是简单地了解Druid的SqlParser模块就可以解决,慢慢地问题变得越来越复杂,直到某天改动 阅读全文
posted @ 2018-10-23 23:17 __lay 阅读(32462) 评论(0) 推荐(3)
摘要:什么是velocity? velocity是一个基于Java的模板引擎。你可以使用它来预定义模板,并且对模板进行数据渲染,从而动态生成相应的文本。它如同JSP一样经常被使用在MVC分层架构当中,充当View的责任。为什么说它是基于Java的呢?你可以简单地这样理解:我们可以用Java对象来存放数据, 阅读全文
posted @ 2018-10-19 01:39 __lay 阅读(582) 评论(0) 推荐(0)
摘要:在我们的项目中或多或少会采用xml来做配置文件,你可以采用Java原生支持的sax、DOM或者第三方的dom4j等。虽然提供了各式各样的解析方式,但是解析一个复杂的xml所编写的Java代码是非常麻烦的,尤其是当xml做了修改,你会发现你又要修改Java代码。 Apache的commons项目中Di 阅读全文
posted @ 2018-10-17 01:32 __lay 阅读(3184) 评论(0) 推荐(0)
摘要:一、什么是RPC RPC全称是remote procedure call,即远程过程调用。它是一种协议,用于从远程计算机上请求服务。 例如有两台服务器A和B,A上的应用想要调用B上应用的方法,但是他们在不同的服务器,所以不能通过内存调用的方式,所以我们理所当然地去考虑通过网络来实现函数调用。RPC也 阅读全文
posted @ 2018-08-29 14:55 __lay 阅读(1386) 评论(0) 推荐(0)
摘要:一、代理模式 如图:由于某些原因我们希望对该实现类进行访问控制、功能增强等,那么加入一层代理层,用代理层来调用实现类是一个很好的方式来解决这个问题,我们可以在调用实现类功能前后进行校验或者加入一些功能来达到控制、增强等效果。 你可以将代理模式简单理解为:不直接面向实现类,而是面向代理类,通过代理类调 阅读全文
posted @ 2018-08-15 10:42 __lay 阅读(567) 评论(0) 推荐(0)
摘要:一、Poi简介 在后台管理系统中,我们经常要做的导出操作,通常导出为Excel文档的形式,而Poi则提供了这种需要的支持。 二、Workbook/HSSFWorkbook/XSSFWorkbook 1) Workbook是Poi模型中的工作簿的概念,等同于Excel文档,我们的一切操作都基于这个工作 阅读全文
posted @ 2018-04-25 11:25 __lay 阅读(685) 评论(0) 推荐(0)
摘要:一、基本概念 在项目中我们经常性做的一件事是“匹配”字符串 比如: 1、我们要验证用户输入的手机号是否合法? 2、验证设置的密码是否符合规则? 3、或者替换指定字符串中的一些内容。 这么一看,似乎正则表达式就是在查找、处理字符串。 二、如何使用 1、首先,我们需要定义一个模板(Pattern),这个 阅读全文
posted @ 2018-04-10 18:23 __lay 阅读(405) 评论(0) 推荐(0)
摘要:JDK1.5开始增加了Annotation功能,该功能可用于: 1、类; 2、构造方法; 3、成员变量; 4、方法 5、参数 等的声明; 该功能并不影响程序的运行,但是会对编译器警告等辅助工具产生影响。本文将介绍Annotation功能的使用方法。 1、定义Annotation类型 在定义Annot 阅读全文
posted @ 2018-03-18 23:54 __lay 阅读(535) 评论(0) 推荐(0)
摘要:1、简介 在项目中我们经常看到一种格式极其干净的配置文件,如:config.properties。在Java的体系结构中也提供了API对properties文件进行读取和写入等操作,即:Properties类。 2、入门DEMO 在cn.lay.properties包下建立类Properties.j 阅读全文
posted @ 2018-03-18 19:04 __lay 阅读(2148) 评论(0) 推荐(0)