210408-常见Bean拷贝框架下划线驼峰互转扩展支持

上一篇博文介绍了几种bean拷贝框架的使用姿势以及性能对比,主要适用的是属性名一致、类型一致的拷贝,在实际的业务开发中,经常会用到驼峰和下划线的互转,本文在之前的基础上进行扩展

  • cglib
  • hutool

210408-常见Bean拷贝框架使用姿势及性能对比

Bean属性拷贝,主要针对几个常用的拷贝框架进行性能对比,以及功能扩展支持

选用的框架

  • cglib (直接使用Spring封装的BeanCopier)
  • apache
  • MapStruct
  • Spring
  • HuTool

210104-IDEA resin配置

Resin是CAUCHO公司(http://www.caucho.com/)的产品,是一个非常流行的支持servlets 和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHE SERVER

简单把resin理解为一个类似tomcat的web服务器就好,下面介绍一下IDEA如何配置resin,从而快速启动

200722-idea依赖类标红问题fix

idea内部类,导入标红,提示找不到对应的依赖,解决办法

file -> Invalidate Caches/ Restart

180910-Java根据路径获取文件内容

给出一个资源路径,然后获取资源文件的信息,可以说是非常常见的一种需求场景了,当然划分一下,本文针对最常见的三种状况进行分析

  • 网络地址
  • 本地绝对路径
  • 本地相对路径

180808-Java实现一个MD5工具类

I. MD5工具类

利用JDK封装一个简易的MD5工具类,逻辑比较简单,直接贴下具体实现

170709-Java实现获取本机Ip工具类

logo

Java实现获取本机Ip的工具类

获取本机Ip算是比较常见的一个需求场景了,比如业务报警,可能就会带上出问题的机器IP,方便直接上去看日志定位问题,那么问题来了,如何获取机器IP呢?

180705-一个简单的幂等工具类实现

一个简单的幂等工具类

在日常的工作中,业务的去重幂等场景属于比较常见的需求,一般来讲简单的幂等工具类可以基于内存或者基于redis进行,本篇简单介绍下,如何使用Guava的缓存来实现一个幂等工具类

Java实现邮件发送

Java实现邮件发送

在日常工作中,通过邮件或短信做报警或者信息推送的场景还是挺多的,而java中,常用的就是JavaMail来做这个事情了,到网上搜索了一把,发现apache有个commons email 的开源包,现在借助它来尝鲜一把

常用Alfred工具

I. Alfred工具

alfred可以说是mac上必备的一个app了,可以极大的提高工作效率,再加上它支持自定义实现各种扩展,完全可以满足大部分的需求场景了

1. 安装

首先下载安装包,推荐一个神奇的网站,下载各种mac的破解软件,工具下载链接: http://xclient.info/s/alfred.html

破解方式:

  • 点击下载包里面的keygen
  • 点击patch,会打开目录,选择alfred,点击激活
  • 重启alfred即可

2. 几个插件

下载包内直接包含了所有的流程和源码,也没什么好具体说的,下载完毕之后双击即可

a. 日期与时间戳

点击下载:time.alfredworkflow

demo: time

b. md5

点击下载: md5.alfredworkflow

demo: md5

c. url编码

点击下载: URL编码.alfredworkflow

demo: url

d. 分库分表

点击下载: table.alfredworkflow

demo: md5

II. 其他

个人博客: Z+|blog

基于hexo + github pages搭建的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

声明

尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正

扫描关注

QrCode

常用Popclip工具

I. PopClip工具

PopClip是mac上的一个工具集,最大的特点就是扩展,复制一段文本,然后根据你的需求写插件,把赋值的文本作为输出,做一些你想干的事

基于PopClip,也写了一些小工具,主要是php写的,写插件的教程还是比较简单的,一个配置文件Config.plist和一个脚本文件xxx.php即可

1. 实现一个插件流程

以JSON格式序列化为demo进行演示,如何从0到1创建一个popclip插件,先看一下最终的成品

img

一个插件的文件比较简单,主要有两个

  • Config.plist
  • 具体的脚本文件

a. 配置文件

下面是一个实际的配置,里面指定了两个脚本:

  • 第一个是 json2str.php,这个脚本实现将json转换为单行字符串,在插件上显示的名字就是 JsonStr, 采用的php编写实现
  • 第二个是 str2json.php

需要注意的是里面正则规则,这个主要是用来表示当你划中一段文本之后,是否会出现这个插件的规则(比如时间戳和日期的相互转换,只有选中纯数字时,才支持时间戳转日期)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Actions</key>
<array>
<dict>
<key>After</key>
<string>paste-result</string>
<key>Regular Expression</key>
<!-- 正则匹配规则,*号表示任意选中的内容都会激活这个插件 -->
<string>*</string>
<key>Script Interpreter</key>
<string>/usr/bin/php</string>
<key>Shell Script File</key>
<!-- 执行具体逻辑的脚本名 -->
<string>json2str.php</string>
<key>Title</key>
<!-- 插件的name -->
<string>JsonStr</string>
</dict>
<dict>
<key>After</key>
<string>paste-result</string>
<key>Regular Expression</key>
<string>*</string>
<key>Script Interpreter</key>
<string>/usr/bin/php</string>
<key>Shell Script File</key>
<string>str2json.php</string>
<key>Title</key>
<string>StrJson</string>
</dict>
</array>
<key>Extension Description</key>
<!-- 描述 -->
<string>remove json space or stringfy json str</string>
<key>Extension Name</key>
<string>JSON</string>
<key>Credits</key>
<array>
<dict>
<key>Link</key>
<string>mailto:bangzewu@126.com</string>
<key>Name</key>
<string>Json序列化</string>
</dict>
</array>
<key>Extension Identifier</key>
<string>popclip.extension.json-covert</string>
<key>Required Software Version</key>
<integer>695</integer>
</dict>
</plist>

b. 脚本文件

这个里面就是写具体的业务逻辑,一般是将粘贴板中的内容作为输入,然后进行一段业务逻辑,然后输出到粘贴板内

如str2json.php

1
2
3
4
5
6
7
8
<?php
$input=getenv("POPCLIP_TEXT");
if(empty($input)) {
echo '';
} else {
$param = json_decode($input);
echo json_encode($param, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
}

注意第一行,获取输入 $input=getenv("POPCLIP_TEXT");, 不同的脚本有不同的获取方式

输出就比较简单了,传统的输出方法,会重写到粘贴板内 echo 'xxx';

c. 打包

上面完成之后,就是打包安装了,流程如下:

  • 新建一个文件夹,后缀为.popclipext,将.plist和脚本文件拷贝到新的文件夹下
  • 压缩: zip -r xxx.popclipextz xxx.popclipext/
  • 双击上面生成的文件,确认安装即可

说明: 上面新建的文件夹,一定要以.popclipext结尾

2. 我的插件

a. base64编码

作用:实现base64编码解码

源码地址: base64

demo: base64

b. 日期&时间戳

作用:实现日期和时间戳的相互转换

源码地址: date

demo: deom

c. unicode字符转中文

源码 : unicode

d. json格式化

源码: json

e. url编码解码

源码: url


II. 其他

工程地址

所有的插件都可以访问: PopClip

个人博客: Z+|blog

基于hexo + github pages搭建的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

声明

尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正

扫描关注

QrCode

常用Chrome工具

I. Chrome常用插件

记录下使用到的Chrome插件,有些挺有意思的东西

1. Website IP

在网页的右下角(or左下角)显示当前网页的服务器IP,用来判断当前的系统的工作环境非常有用,特别是在线下、预发和生产环境的切换时,判断host是否切换的时候

2. Adblock Plus

拦截小广告

3. Adkill and Media download

拦截视频广告,我常逛的优酷,腾讯视频,爱奇艺,芒果的视频广告都被可以被吃掉,节省两分钟的等待时间

4. GitCodeTree

码云提供的gitee,侧边栏提供一个直接查看代码的树状结构

5. JSON Editor

写json的插件

6. Json Handler

json结构化,针对请求直接返回json串的场景用起来比较爽,除了结构化输出之外,还可以修改json串内容,个人感觉比JSONView好用

7. Octotree

github源码视图工具,和前面的 GitCodeTree 差不多

8. Postman

模拟各种http请求

9. Vimium

以vim的方式操作浏览器页面,实现真正的无鼠标全键盘操作

10. 二维码(QR码)生成器(QR Code Generator)

当前网页生成一个二维码,方便手机打开

11. 捕捉网页截图 - FireShot

网页截图工具,可以截长图文,但是在网页特别长时,截取失败,有些时候用起来还可以

12. 掘金

覆盖默认的新打开标签页,显示一些有意思的git项目和掘金上的优秀博文

13. Encoder(自定义实现)

自己写的一个插件,主要是为了提供一些常见的转换, 源码&下载地址: Chrome-Coder

  • 时间戳和日期的相互转换
  • url编码解码
  • base64编码解码
  • unicode编码解码

14. Chrome-ImgRender

自己写的插件,源码&下载地址: Chrome-ImgRender

选择网页中的dom结构,输出图片的小工具,使用演示如:

II. 其他

个人博客: Z+|blog

基于hexo + github pages搭建的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

声明

尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正

扫描关注

QrCode

基于OkHttp封装一个简单易用的http工具

基于OkHttp封装一个简单易用的http工具

okHtt更常见的是用在android项目上实现http交互,而java后端,可能更多的使用httpclient;一般来讲,android的包,大部分也是可以用到java后端的,本片博文则主要是介绍如何使用okhttp实现http交互,并会做一个简单的封装,以达到更好的使用体验

本篇为纯工具封装,无原理分析

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×