![](https://img-blog.csdnimg.cn/20191009182313754.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
Java技术知识总结和分享
知春秋
不忘初心,方得始终。初心易得,始终难守。
展开
-
占位符解析工具类
这个工具类是MyBatis用于解析占位符#{}、${}的,抽取源码简化后,可以用于自生项目的解析。原创 2023-05-07 02:39:46 · 248 阅读 · 1 评论 -
(免费)Word转PDF全套工具类
本工具类是基于aspose技术实现,由于aspose是付费技术,这里使用的许可认证方式支持。原创 2022-11-27 02:16:44 · 629 阅读 · 1 评论 -
OAuth 2.0设计规范
OAuth2.0接口设计规范说明OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务器提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。原创 2022-05-20 15:26:55 · 1462 阅读 · 1 评论 -
分布式集群架构解决方案
分布式集群架构解决思路和方案介绍原创 2020-11-27 11:53:34 · 1557 阅读 · 0 评论 -
Java反射与内省(参考小米内部资料)
反射和内省技术时Java必须掌握的核心技术之一,其中内省又是Java官方对反射技术的封装,主要目的是为了简化对Java Bean的操作。文章参考了小米官方内部的技术文档重新整理发布。原创 2020-06-24 01:01:38 · 690 阅读 · 1 评论 -
【高级进阶】写给大忙人看的JDK14新特性
JDK 14在今年2020年3月17好发布GA版本,但是至今很多都是简单介绍了JDK14新特性的使用,对于新特性的详细讲解却没有深入。或者对于为什么由这个新特性也不加以说明。导致开发者只会用,但是不理解其中的原理等。本文将介绍新特性的来源丶要解决现存Java中存在的问题丶以及深入的使用方法。原创 2020-05-17 21:59:50 · 478 阅读 · 0 评论 -
Java处理小数点精度
Java处理小数点精度简介 java中提供了浮点数float和double类型表示小数计算,但是设计这2类型主要是为了科学计算和工程设计而设计的。因此,并没有提供完全精确的结果,所以不应该被用于需要精确结果的场合。特别是货币计算。问题出现 假设你现在有¥1.03元,花掉了¥0.42之后剩下多少钱呢?使用计算器是非常简单的计算,但是如果交给Java程序那结果如何呢?S...原创 2018-03-16 14:30:05 · 6019 阅读 · 0 评论 -
设计模式之模板方法模式(九)
模板方法模式简介 模板方法模式是将公用的代码抽取到父类,并定义可变部分由子类实现的一种模式。实现方式 玩家玩游戏的时候会给角色配置服装,那么不可避免给每个玩家都实例一个Player对象,并且设置服装。普通方式实现package com.rabbit.pattern.template;/** * Created by vip on 2018/3/9. */p...原创 2018-03-11 10:38:19 · 251 阅读 · 0 评论 -
微信现金红包接口对接
微信现金红包接口对接前言 接到公司业务提出的需求,说公司的积分商城需要可以兑换现金,就是公众号给微信用户发送红包。对接的是发放普通红包接口。开发前置了解 接口文档地址:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon_sl.php?chapter=13_4&index=3 1)...原创 2018-03-09 17:16:25 · 6955 阅读 · 4 评论 -
设计模式之原型模式(八)
原型模式简介 原型模式其实就是通过实例创建另一个对象,而且不需要知道任何的创建细节。Cloneable接口 cloneable接口没有任何方法,如果一个类实现了cloneable接口,那么Object.clone()方法就可以合法的对该类实例进行字段的负责。如果一个类没有实现cloneable接口,调用Object.clone()方法,那么就会抛出CloneNotS...原创 2018-03-08 19:52:50 · 290 阅读 · 0 评论 -
设计模式之策略模式(五)
策略模式简介策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且算法之间可以相互替换。策略模式使得算法独立于使用它的客户端。类图实现方式案例场景:实现加/减/乘/除4种运算法则。对于这4种运算场景,其实可以说是4种算法,因此可以使用策略模式使用。其实虽然说是策略模式合适于算法,但是对于其它不同的业务逻辑也是可以使用的不一定说是算法才可以使用。例如:1)商城系统中的各种促销活动,每种促销活动...原创 2018-02-19 01:02:35 · 235 阅读 · 0 评论 -
Web Service应用之CXF开发
Web Service应用之CXF开发web service应用之JAX-WS开发链接:http://blog.csdn.net/sinat_32366329/article/details/79085602简介Apache CXF =Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和...原创 2018-02-18 15:21:26 · 982 阅读 · 0 评论 -
设计模式之装饰者模式(六)
装饰者设计模式简介 装饰者模式是一种更加灵活的扩展类的功能的方法。传统的拓展一个类的功能最常用的就是继承(JAVA的三大特性之一)。但是如果修改原有的类,那么久违背了“开闭原则”。如果一味的为了新功能就去使用继承结构,那么就会导致子类膨胀,难以维护。装饰者模式就是在不使用继承的情况下扩展类的功能,而且可以灵活的组合调用。类图实现方式package com.rabbit.patter...原创 2018-02-27 20:31:30 · 303 阅读 · 0 评论 -
设计模式之工厂模式(二)
工厂模式简介 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用共同的接口来指向新创建的对象。这样调用者只知道工厂方法,而不知道具体的对象。屏蔽产品的具体实现,调用者只关心产品的接口。使用场景 当您准备...原创 2018-02-07 23:54:42 · 235 阅读 · 0 评论 -
设计模式之单例模式(一)
原创 2018-02-07 23:25:17 · 191 阅读 · 0 评论 -
org.apache.solr.common.SolrException undefined field text
在collection1文件夹的solrconfig.xml文件中text df为solr中默认的搜索field , 那么此处定义了默认field为text,可是我的schema.xml中未定义text,那么肯定会报以上错误。解决方法:1.在schema.xml中定义一个字段2.在solrconfig.xml中的所有df中更改为schema.xml中存在的字段,如原创 2017-12-05 16:09:12 · 1557 阅读 · 1 评论 -
SolrException Invalid Number MA147LL/A或IW-02
基于solr-4.10.3部署启动没问题,所有自己修改schema.xml部署并自定义type类型,但是启动时候报错SolrException: Invalid Number: MA147LL/A 首先爆的是这个,修改的schema.xml的id类型使用long.但是collection1下面的elevate.xml使用的id是MA147LL/A这个是字符串,所以出问题。解决办原创 2017-12-05 16:10:37 · 1431 阅读 · 1 评论 -
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter找不到
struts2在web.xml中配置核心过滤器的时候发现导入的包struts2-core的2.5.14.1包的时候找不到下面这个了,org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter但是把名称路径改成org.apache.struts2.dispatcher.filter.StrutsPrepa原创 2017-12-16 11:14:17 · 569 阅读 · 1 评论 -
Java集合结构关系图
原创 2017-12-18 09:08:33 · 1172 阅读 · 0 评论 -
java.lang.UnsupportedClassVersionError:Unsupported major.minor version 52.0
最近在使用JDK8搭建一个项目做技术练习的时候,启动就出现下面的错误信息:"C:\Program Files\Java_plugs\apache-tomcat-8.5.23\bin\catalina.bat" run[2017-12-19 11:06:51,048] Artifact freemarker:war exploded: Server is not connected. Depl原创 2017-12-19 14:42:43 · 3921 阅读 · 0 评论 -
Cookie工具类
package com.rabbit.util;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Created by vip on 2017/12/29. */publi原创 2017-12-29 11:04:14 · 252 阅读 · 0 评论 -
设计模式之工厂方法模式(三)
工厂方法模式简介 工厂方法模式(Factory Method)是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品。工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建...原创 2018-02-08 21:41:16 · 205 阅读 · 0 评论 -
设计模式之抽象工厂模式(四)
抽象工厂模式简介 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指...原创 2018-02-11 16:45:25 · 292 阅读 · 0 评论 -
设计模式之代理模式(七)
代理模式简介 代理模式定义:为被代理对象提供代理以控制该对象的访问权限。例如我们想找明星出演商业活动的时候是不可以直接联系本人的,是需要联系经纪人。代理模式通用类图入门案例一 例如我想找颖宝去演出某部电视剧,颖宝平时的工作很忙,如果什么事情都要自己处理的话,就会显得很劳累。所以才有明星经纪人的出现,那么经纪人其实就是颖宝的代理人的。代理颖宝处理一部分事情,你要找颖宝...原创 2018-03-04 11:18:33 · 2090 阅读 · 0 评论 -
设计模式之建造者模式(十)
建造者模式简介 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。类图实现方式 以我们的最常用的电脑为例,电脑是一个抽象的概念,但是具体型号组装好的电脑就是一个个实体。我们组装电脑...原创 2018-03-19 14:27:38 · 2099 阅读 · 0 评论 -
直接new 对象 Spring 不会注入的解决方法
请打来链接:http://blog.csdn.net/java_huilong/article/details/53332488点击打开链接转载 2018-03-21 15:09:09 · 4469 阅读 · 0 评论 -
Java Lambda 表达式学习笔记
Java Lambda 表达式学习笔记Java Lambda 表达式是 Java 8 引入的一个新的功能,可以说是模拟函数式编程的一个语法糖,类似于 Javascript 中的闭包,但又有些不同,主要目的是提供一个函数化的语法来简化我们的编码。Lambda 基本语法Lambda 的基本结构为(arguments) -> body,有如下几种情况:参数类型可推导时,不需要指定...原创 2019-09-29 00:35:07 · 442 阅读 · 0 评论 -
JUnit单元测试
JUnit单元测试JUnit单元测试发展到现在已经有了许多的支持,这里将介绍非注解模式的JUnit使用,虽然是非注解,但是并不比注解方式的难。注解方式的简单易用,百度或者谷歌都可以找到一堆教程。后面的文章会介绍Junit注解方式和easymoke的结合使用。easymoke可以轻松为我们创建一个对象。不用全部代码写完后再执行单元测试。1.测试类编写一个测试类继承TestCase就可...原创 2019-08-21 23:19:54 · 540 阅读 · 0 评论 -
String Format格式化
String Format格式化一、格式说明1.通用字符和数字格式%[argument_index$][flags][width][.precision]conversionargument_index:指定参数的位置,第一个参数1$....以此类推flags:输出参数的格式width:表示要输出的最小字符数precision:确定输出的精度,具体的行为取决于转换c...原创 2019-08-21 23:16:49 · 1102 阅读 · 0 评论 -
Java中调用groovy程序
Java中调用groovy程序Java中调用groovy程序有一下几种方法1) Bean Scription Framework JSR 223规定2) groovyShell3) GroovyClassLoader4) GroovyScriptEngine5) 嵌入式控制台使用最常用的GroovyClassLoader 其它方式不常用而已不方便,所有不展开讲解Groov...原创 2018-06-22 00:30:21 · 289 阅读 · 0 评论 -
Groovy与Java的差异(部分)
Groovy与Java的差异(部分)可选的分号和返回语句 在Groovy中,语句结束处的分号可以在只有一条语句的情况下可以省略。List jvm = ["Java", "Groovy", "Scala", "Clojure"]//可以省略结束分号println(jvm.size())可选的参数括号 如果groovy中的方法调用至少有一个参数,并且没有二义性,那么...原创 2018-06-22 00:11:47 · 857 阅读 · 0 评论 -
Groovy环境安装
GROOVY依赖JVM,在此前需要安装配置好JAVA环境变量(请参考网络上的教程)。1. 下载官网地址:http://www.groovy-lang.org/download.html1. 解压注意解压路径要记得,因为需要配置到环境变量中。1. 配置环境变量1) 右键点击“我的电脑”,然后点击“属性”2) 选择“高级”选项卡3) 点击“环境变量”4) 点击“新增”添加新的环境变...原创 2018-06-21 22:29:11 · 8569 阅读 · 0 评论 -
mybatis读取不到数据库最新数据
mybatis读取不到数据库的最新数据是怎么回事?昨天上线项目的时候,测试反馈说对角色增加了权限,没有及时显示,而把角色的部分权限回收,菜单还是显示了。 第一时间想到的是缓存影响了,清空了浏览器缓存,redis缓存,tomcat重启都没有用。但是还是认为是缓存的问题。所有就从零开始分析了,最终突然想到了mybatis框架自带缓存,一级缓存和二级缓存,而一级缓存默认是开启的。什么意思呢...原创 2018-06-07 09:59:36 · 4317 阅读 · 1 评论 -
NIO2
NIO2I/O发展历史Java1.0-1.3 在Java的早期版本中,没有完整的I/O支持,在开发过程中需要解决以下问题:1)没有数据缓冲区或者NIO的通道概念,需要编程人员处理底层细节。2)I/O是受阻塞的。3)不支持正则表达式,数据处理困难。Java1.4引入NIO Java 1.4阶段,开始支持非阻塞I/O。帮助开发人员提供更快/更可靠的I/O解决方案。主要引入有2次:1)Java 1.4中...原创 2018-06-04 10:57:38 · 2452 阅读 · 0 评论 -
JDK7新特性
JDK7新特性 一直在用JDK7的新特性,但是目前总结对开发中美化代码和比较实用的几个特性。1)switch中的String类型比较。2)数字常量的新形式写法。3)改进的异常处理。4)try-with-resources。5)砖石语法。Switch中引入String比较类型这个不多介绍,因为大家一定已经很熟悉了。数字常量的新形式写法 这个特性的引入对我们阅读数字有很...原创 2018-05-26 22:59:59 · 955 阅读 · 0 评论 -
tomcat-web应用过滤器
WEB应用过滤器对于web应用中我们可以配置自定义的过滤器满足自己对项目的需求,但是针对一些常见的Web应用需求,Tomcat已经提供了一系列的实现,只需要直接配置加入到项目中就可以满足需要。CorsFilterOrg.apache.catalina.filters.CorsFilter是W3C CORS(跨域资源共享)规范的一个实现,是启用跨域资源共享的一种途径。该过滤器主要在HttpServl...原创 2018-05-19 19:50:20 · 2269 阅读 · 0 评论 -
alibaba jarslink框架教程
alibaba jarslink框架教程demo的github地址:https://github.com/superRabbitMan/jarslink-demo什么是jarslinkJarsLink (原名Titan)是一个基于JAVA的模块化开发框架,它提供在运行时动态加载模块(一个JAR包)、卸载模块和模块间调用的API。为什么使用jarslink隔离性类隔离:框架为...原创 2018-04-26 00:12:07 · 5615 阅读 · 3 评论 -
invalid constant type: 18
今天在做dubbo项目的时候发现启动服务生产者出现以下问题:错误信息Exception in thread "main" java.lang.RuntimeException: java.io.IOException: invalid constant type: 18 at javassist.CtClassType.getClassFile2(CtClassType.java:204) a...原创 2018-04-20 00:33:39 · 15752 阅读 · 0 评论 -
Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instea
今天在使用JSR303技术的时候发现出现了下面的错误:"C:\Program Files\Java\jdk1.8.0_111\bin\java" -Didea.launcher.port=7534 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1.3\bin" -Dfile.encoding=...原创 2018-04-19 17:13:55 · 9498 阅读 · 1 评论 -
Java类加载器
Java类加载器J2SE标准类加载器 JVM默认提供了3个类加载器,他们之间是父子关系,并使用委派模式确保应用程序可以通过自身的类加载器(System类加载器)加载所有可见的类。如下图:各类加载器作用Bootstrap:用于加载JVM提供的基础类,即位于%JAVA_HOME%/jre/lib目录的核心类库。Extension:Java提供的用于加载除了核心类库以外的Jar包,Jav...原创 2018-04-30 22:48:22 · 176 阅读 · 0 评论