Hutool

【Java】开发一个Java-SDK

旧时模样 提交于 2020-08-08 22:51:07
前提   实际上开发一个Java-SDK的过程,实际上也就是开发一个基本java项目并打包成jar包的过程,然后可以被其它项目引入使用。 开发Java-SDK   本例介绍开发一个向某一数据接口发送请求并返回结果的SDK   1、新建一个Maven工程test-sdk-java        2、编辑pom文件,引入需要的jar包,若不需要第三方jar包也可以不引入     本例使用了hutool工具包 1 <? xml version="1.0" encoding="UTF-8" ?> 2 < project xmlns ="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > 5 < modelVersion > 4.0.0 </ modelVersion > 6 7 < groupId > org.example </ groupId > 8 < artifactId > test-sdk-java </ artifactId > 9 <

BoringMQ 1.0.0-RELEASE 介绍

和自甴很熟 提交于 2020-07-29 03:01:51
零、完成时间 2020-06-18 18:00:00 一、BoringMQ 码云地址 BoringMQ-Server BoringMQ-Client 二、BoringMQ使用到的技术 jdk8 maven nio juc hutool工具包: hutool官网 三、BoringMQ 1.0.0-RELEASE 功能 3.1客户端功能 支持心跳检查、重连机制 支持发送同步文本消息,可以知道服务器是否接收成功 支持Queue消息和Topic消息 支持监听Queue消息和Topic消息 可配置单个Queue/Topic的最大消息数 可配置单个消息最大字节数 可配置超时等待时间 可配置心跳间隔时间 3.2服务端功能 仅使用内存保存消息,重启消息挂扑 Queue消息随机选择一个消费端发送消息 可配置单个消息最大字节数 可配置端口 四、个人编写心得 一开始复习了一把NIO的使用,遇到了空轮询bug并解决了它。接着是selector轮询器的使用注意事项,比如注册读时间以后必须注册个写事件来阻塞它、一个channel可以无限写,不用每次写都注册个读时间。 然后就是怎么把消息分发到各个消费端,消费端怎么拿到服务器的对应消息。还有就是创建消息模型和监听消息时的先后顺序问题。比如先是消费端启动,服务器上此时还没有对应的消息,这时就需要等待、再比如一个消费端断联了怎么办,服务器断联了怎么办

nacos配置管理与服务发现

守給你的承諾、 提交于 2020-05-06 12:48:44
maven配置 父pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ivan</groupId> <artifactId>pinellia</artifactId> <packaging>pom</packaging> <version>1.0.0-SNAPSHOT</version> <modules> <module>pinellia-common</module> <module>pinellia-service</module> <module>pinellia-service-api</module> <module>pinellia-auth</module> <module>pinellia-gateway</module> <

Hutool

元气小坏坏 提交于 2020-05-02 14:02:23
Hutool简介 Hutool是一款小而全的开源开发工具类库,在github上拥有将近一万九的star,基本上你能想到的开发当中常需要用到的小轮子,基本上都有具备。学习一下hutool工具包可以避免我们在平常开发中重复造轮子。这款hutool开源库,更新频率快,jar包小仅1.5Mb。对比其他同款类型的基础工具类库来说,是一大优势。因为其他同款类型的基础工具类库多多少少都有基于apache commons做了一些封装。 对于很多小型公司来说,公司内部并没有完善的基础工具类库,使用hutool可以节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务同时可以最大限度的避免封装不完善带来的bug。 Hutool主要组件 模块 介绍 hutool-aop JDK动态代理封装,提供非IOC下的切面支持 hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache 简单缓存实现 hutool-core 核心,包括Bean操作、日期、各种Util等 hutool-cron 定时任务模块,提供类Crontab表达式的定时任务 hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装 hutool-db JDBC封装后的数据操作,基于ActiveRecord思想 hutool-dfa 基于DFA模型的多关键字查找

freemarker导出复杂样式的Excel

本小妞迷上赌 提交于 2020-04-30 19:55:03
freemarker导出复杂样式的Excel 代码地址: gitee https://gitee.com/suveng/demo/tree/master/chapter.002 代码存放于demo下面的chapter.002目录下, 每个模块都是独立开的springboot应用,可以直接运行 application 环境 springboot 2.1.2 Freemarker 2.3.28 JDK1.8 步骤 1.找到对应Excel模板 我在网上找了一网站下载了一个Excel模板, 地址 下载的文件是 2018库存表 2.Excel模板导出为xml格式 将其导出为xml格式;直接文件另存为即可 删除多余的数据, 将模板变量填进去, 这个变量是需要符合 freemarker 的变量规则的; 具体内容可参考 文件 3.替换freemarker变量 关键修改: <#list products as product> <Row> <Cell> <Data ss:Type="String">${product.name!}</Data> </Cell> <Cell> <Data ss:Type="String">${product.number!}</Data> </Cell> <Cell> <Data ss:Type="String">${product.type!}</Data> <

Hutool工具类之HttpUtil使用Https

不打扰是莪最后的温柔 提交于 2020-04-24 16:10:54
关于Hutool工具类之HttpUtil如何使用可以参考官方文档 Hutool之HttpUtil 其实使用Http和Https使用的方式是一样的。 建议大家可以看看HttpUtil的源码,感觉设计的挺不错的。 导入Maven依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version> 4.1 . 0 </version> </dependency> 编写测试类(使用Junit单元测试) @Test public void testHttps() throws Exception { JSONObject json = new JSONObject(); json.put( " username " , " 1332788xxxxxx " ); json.put( " password " , " 123456. " ); String result = HttpRequest.post( " https://api2.bmob.cn/1/users " ) .header( " Content-Type " , " application/json " ) .header( " X-Bmob-Application-Id " , "

Hutool之类型转换类——Convert

一笑奈何 提交于 2020-04-10 18:44:13
类型转换类 Convert 在Java开发中我们要面对各种各样的类型转换问题,尤其是从命令行获取的用户参数、从HttpRequest获取的Parameter等等,这些参数类型多种多样,我们怎么去转换他们呢?常用的办法是先整成String,然后调用XXX.parseXXX方法,还要承受转换失败的风险,不得不加一层try catch,这个小小的过程混迹在业务代码中会显得非常难看和臃肿,于是我们把这种类型转换的任务封装在了 Conver 类中。 1. toStr 、 toInt 、 toLong 、 toDouble 、 toBool 方法 这几个方法基本代替了JDK的XXX.parseXXX方法,传入两个参数,第一个是Object类型的被转换的值,第二个参数是默认值。这些方法做转换并不抛出异常,当转换失败或者提供的值为null时,只会返回默认值,返回的类型全部使用了包装类,方便我们需要null的情况。 2. 半角转全角 toSBC 和全角转半角 toDBC 在很多文本的统一化中这两个方法非常有用,主要对标点符号的全角半角转换。 来源: oschina 链接: https://my.oschina.net/u/730640/blog/270829

介绍一个功能丰富的 Java 工具包

為{幸葍}努か 提交于 2020-04-06 18:42:15
大家好,本文要分享一个精品的,优质的开源的 Java 相关的开源项目了。这个开源项目在 GitHub上已经收获了上万个 star 。 这个开源项目就是:Hutool 。它是一个功能丰富的 Java 工具包。它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率。该项目最初是作者工作项目中的 util 模块,后来慢慢积累并加入更多非业务相关工具类方法。经过整理修改,最终形成丰富的开源工具集。 Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以 “甜甜的”。 Hutool 中的工具方法来自于每个用户的精雕细琢,它涵盖了 Java 开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当; Hutool 是项目中 “util” 包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的 bug。 Hutool 的目标就是: 包含的组件模块如下: 来源: oschina 链接: https://my.oschina.net/linuxmeng/blog/3213590

Spring Cloud微服务架构从入门到会用(五)—服务网关鉴权

寵の児 提交于 2020-03-25 00:10:09
3 月,跳不动了?>>> 上一篇文章我们集成了服务网关Spring Cloud Gateway,所有的服务请求都可以通过Gateway访问。那我们就可在服务网关这一层对用户的请求进行鉴权,判断是否可以访问路由的API接口。 加下来我们开始增加鉴权,这里我们使用jwt 1. 创建授权服务module 按照第二篇文章创建一个module,起名为app-auth。 2. 修改service-auth的pom文件 <properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.SR1</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>

使用HuTool工具类,实现登录验证码

五迷三道 提交于 2020-03-20 09:51:17
3 月,跳不动了?>>> 1.首先引入HuTool的依赖包 <!--hutool--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.6.8</version> </dependency> 2.登录页面 <div class="layui-form-item input-item" id="imgCode"> <label for="code">验证码</label> <input type="text" placeholder="请输入验证码" name="code" autocomplete="off" id="code" class="layui-input"> <img th:src="@{/login/getCode}" onclick="this.src=this.src+'?'"> </div> 3.LoginController.java 登录控制器 package com.wang.springboot.sys.controller; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.LineCaptcha; import com.wang