
java
闪耀的瞬间
漫漫程序路:路漫漫其修远兮 吾将上下而求索
展开
-
Java OkHttp发送网络请求与上传文件公用方法
okhttp原创 2022-08-12 10:35:06 · 573 阅读 · 0 评论 -
SnowflakeId雪花ID生成器
Java雪花ID生成器原创 2022-04-06 23:20:02 · 1365 阅读 · 0 评论 -
IDEA使用maven插件生成protobuf实体类
idea使用maven插件生成protobuf java实体类原创 2022-04-05 20:21:22 · 816 阅读 · 0 评论 -
Java使用apache-commons-compress对文件进行压缩(LZ4、Gzip、Snappy、Zip、Tar)
因项目中传输的文件很大,非常占用磁盘空间,因此对使用apache提供的commons-compress压缩帮助类进行封装封装了Gzip、LZ4、Snappy、Zip、Tar几个工具类准备到生产环境验证各个压缩算法的效率(时间、空间),根据业务的不同,我们对压缩时间要求快,所以后面会选择一款非常快速的压缩算法下面给出各个工具类,需引用 commons-compress<dependency> <groupId>org.apache.commons</groupI原创 2021-11-27 21:49:56 · 3424 阅读 · 0 评论 -
screw-数据库表结构文档生成器
推荐一款数据库表结构文档生成器已支持的数据库MySQLMariaDBTIDBOracleSqlServerPostgreSQL支持生成文档的格式htmlwordmarkdown下图是生成的 Html文档格式使用方式有两种使用方式:1.代码实现2.Maven插件实现1.代码实现# 引入maven 依赖<dependency> <groupId>cn.smallbun.screw</groupId> <原创 2021-10-16 22:13:20 · 139 阅读 · 0 评论 -
统一日志格式
1.日志对象日志格式最好是统一的,即方便查看定位问题又方便统计收集。我一般喜欢定义一个LogObject对象,里面定义日志的各个字段。例如:import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.annotation.JsonInclude.Include;import com.fasterxml.jackson.annotation.JsonProperty;public class Lo原创 2021-10-08 18:46:11 · 171 阅读 · 0 评论 -
Java使用dom4j修改xml内容
使用dom4j修改xml内容是很方便的,有很多API方法,可以参考官网:https://dom4j.github.io/#top1,引入Maven依赖<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j --><dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <原创 2021-06-11 21:01:37 · 1985 阅读 · 1 评论 -
Java异步编程之CompletableFuture
1.CompletableFuture与Stream结合,完成异步任务2.CompletableFuture类默认使用ForkJoinPool.commonPool() ,该连接池默认使用CPU核心数为线程数3.CompletableFuture的相关方法可以接受用户自定义的线程池去运行任务4.CompletableFuture提供了一些API可以组合处理不同业务类型的多个异步任务import cn.hutool.core.date.DateUtil;import java.util.Ar.原创 2021-04-16 23:00:57 · 339 阅读 · 0 评论 -
Java异步编程之ThreadPoolExecutor
在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样对线程的创建更加规范,可以合理控制开辟线程的数量;而线程池不允许使用Executors去创建,而要通过ThreadPoolExecutor方式,这一方面是由于jdk中Executor框架虽然提供了如newFixedThreadPool()、newSingleThreadExecutor()等创建线程池的方法,但都有其局限性,不够灵活;另外由于前面几种方法内部也是通过ThreadPoolExecuto原创 2021-04-12 10:31:12 · 393 阅读 · 0 评论 -
Java核心知识点之注解简介和最佳实践
111转载 2020-06-30 09:36:17 · 242 阅读 · 0 评论 -
图片压缩-服务端压缩与客户端压缩
1.服务端压缩1.hutool ,它是个java工具库,官网地址:https://hutool.cn/docs/#/图片工具部分有使用示例,缩放比例设置为0.5,压缩后的图片是原图的一半(宽度、高度)ImgUtil.scale( FileUtil.file("c:/index_bg1.jpg"), FileUtil.file("c:/index_bg1_result.jp...原创 2019-12-05 15:21:16 · 1188 阅读 · 0 评论 -
Dubbo-Spring-Boot
dubbo分2种方式与项目集成,1.通过Spring配置方式,2.SpringBoot版本 - 1.通过Spring配置方式:https://github.com/apache/incubator-dubbo - 2.SpringBoot版本:https://github.com/apache/incubator-dubbo-spring-boot-project它们有公用的官方文档:ht...原创 2018-08-28 11:10:18 · 883 阅读 · 0 评论 -
SpringBoot项目开发(一):开篇
新开了一个 SpringBoot 项目开发系列博客,在开发互联网项目中遇到的问题和好的东西分享给大家。为什么叫感谈? &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;&am原创 2018-07-16 17:00:58 · 2643 阅读 · 0 评论 -
SpringBoot项目开发(十二):发送邮件
Spring Boot 配置并发送邮件 1.引入依赖,在 pom.xml 文件中引入邮件配置:&amp;amp;lt;dependency&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.springframework.boot&amp;amp;lt;/groupId&amp;amp;gt; &amp;amp;lt;artif原创 2018-04-20 16:03:33 · 979 阅读 · 0 评论 -
SpringBoot项目开发(十三):文件上传,监听、过滤非自身网站的请求,对资源进行防盗链等
引用上面一张图片,可能有A、B、C三个项目需要上传文件,如.zip、excel、images等文件,常用的方法是在各自项目中编写上传的后台代码,文件上传到项目的当前服务器路径下,其他项目需要时又复制一次,这种类似是单体式架构,不好扩展,那么开发一个统一的资源服务就很有必要,由这个资源服务统一管理,其他项目只要使用即可,资源服务器提供上传、下载、访问等功能。当然如果有很大量的文件资源,可以使用 ...原创 2018-05-14 11:44:28 · 2508 阅读 · 1 评论 -
SpringBoot项目开发(十四):AOP,收集日志、统计方法执行时长
用过Spring 的开发者都知道它有两大核心功能,1.依赖注入(IOC、DI)、2.面向切面编程(AOP)。AOP:面向切面编程,往往用来实现关注点的分离的技术。系统是由许多不同的组件所组成的,每一个组件各负责一块特定功能。可以很好的集成日志收集、权限拦截、运行监控等功能。1.新建项目,添加引用,用到MVC、AOP、模版引擎&amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;gt;原创 2018-05-20 11:35:36 · 2996 阅读 · 4 评论 -
SpringBoot项目开发(十九):全局异常处理
团队写的代码总会有漏洞的地方,报错后直接把一大堆英文的错误信息呈现给用户是很不友好的,为了更友好,通过捕获全局异常,统一跳转到一个友好的错误页面SpringMVC提供一个HandlerExceptionResolver接口,全局异常处理器实现此接口1.新建一个全局异常处理类,GlobalExceptionResolver.java,实现HandlerExceptionResolver接口...原创 2018-08-20 16:12:01 · 631 阅读 · 0 评论 -
SpringBoot项目开发(十八):定时任务
在项目开发中,经常需要用到定时任务去获取或设置某些状态,SpringBoot已经默认帮我们实现好了,只要添加注解就可以使用了1.在启动类上,启用任务@EnableScheduling@MapperScan(&quot;com.zypcy.expend.dao&quot;)@SpringBootApplicationpublic class ExpendApplication { publi...原创 2018-08-17 09:24:02 · 984 阅读 · 0 评论 -
SpringBoot项目开发(二十四):支持跨域请求JSONP
在SpringMVC4.1版本以后,Spring为我们提供了一个AbstractJsonpResponseBodyAdvice的类用来支持jsonp的数据,SpringBoot接收解析web请求是依赖于SpringMVC,所以也可以继承此类看代码@ControllerAdvice(basePackages = "com.lkh.tour.controller")public class Js...原创 2018-10-26 15:51:40 · 744 阅读 · 0 评论 -
SpringBoot项目开发(十七):mybatis + pagehelper翻页
上篇介绍 增删改查 后,本篇将集成翻页功能,翻页功能将使用第三方pagehelper插件实现,下面直接晒干货1.接着上一篇的代码,在项目中添加 pagehelper-spring-boot-starter 依赖 , 下载源码 expend&amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;groupId&amp;amp;a原创 2018-08-15 16:20:40 · 1706 阅读 · 4 评论 -
SpringBoot项目开发(二十一):Gzip压缩
为了减少数据在网络中的传输量,从而减少传输时长,增加用户体验,浏览器大都是支持Gzip压缩技术的,http的请求头 Accept-Encoding:gzip, deflate 就表示这次请求可以接受Gzip压缩后的数据,压缩会有一定的CPU性能损耗1.SpringBoot开启Gzip压缩在application.properties中加入如下配置:server.compressio...原创 2018-09-05 09:33:40 · 20158 阅读 · 0 评论 -
java 手写代码简单模拟SpringMVC
1.在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求2.通过一个简单的java项目来模拟Spring MVC,先说一下整体思路:1.定义@Controller、@RequestMapping注解2.模拟项目启动时把这些类加载到统一容器中3.模拟we...原创 2018-09-11 10:54:44 · 585 阅读 · 0 评论 -
SpringBoot War包形式部署到外部Tomcat
1.SpringBoot 项目打包时能打成 .jar 与 .war包形式的文件,打成 .jar 的最多,使用 java -jar xx.jar 就可以启动,而 .war 可以部署到tomcat的 webapps 中,随tomcat的启动而启动。2.打包成什么文件进行部署,与项目有关,就像提供 rest 服务的项目需要打包成 jar文件,用命令搭建成集群很方便。。。而有大量css、js、html需...原创 2018-09-28 15:36:57 · 26315 阅读 · 0 评论 -
ueditor+SpringMVC整合中遇到的坑
CMS项目中需要引用到多文本编辑器,所以采用Ueditor下载地址:http://ueditor.baidu.com/website/download.html看到完整源码,我马上下载了,结果悲剧了,请下载具体语言的版本回到正题,1、引用js2、引用JSP-lib下的架包3、配置config.json文件--文件上传后保存的路径、展示的文件等等引原创 2016-05-21 14:54:52 · 2792 阅读 · 0 评论 -
SpringBoot @Async异步并行执行任务
说@Async注解时,得先说说异步任务的由来,按我的理解,从Java5版本就提供 Future 接口,Future接口可以充分利用多核CPU处理能力,它允许任务在一个新的核上开启一个新的子线程,子线程和原来的任务同时运行,因为Future 的局限性Java8对Future进行重新实现,实现类 CompletableFuture,而Spring对Future接口进行了封装,使用 @Async 注解可...原创 2019-08-21 20:42:48 · 7967 阅读 · 0 评论 -
SpringBoot打成jar运行后无法读取resources里的文件
在开发一个word导出、替换内容功能时,因替换内容功能需要一个 word 模版,就把 word_replace_tpl.docx 模版文件放到 resources 下在开发环境中通过下面的方法能正确读取word_replace_tpl.docx文件,但是打成jar包在 linux下运行后无法找到文件了File file = ResourceUtils.getFile(ResourceUti...原创 2019-08-01 16:31:50 · 30520 阅读 · 15 评论 -
SpringCloud实战十七:Spring Cloud Consul 服务发现与配置中心
Consul 用于实现分布式系统的服务发现与配置。与其他服务注册与发现相比,Consul更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。使用起来也较为简单。Consul使用Go语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文...原创 2019-03-04 21:53:04 · 12720 阅读 · 0 评论 -
服务器tomcat配置SSL证书(https)
1.因开发微信小程序,需要使用到https的域名,所以需要给服务器配置SSL证书。 证书可以到各大厂商申请,有免费的,有付费的,我在阿里云上申请免费的(Symantec 免费DV),申请过程就不介绍了,申请完下载证书文件,根据阿里云给出的SSL证书配置进行操作,它还出了配置的视频。。真是太完美了。视频地址:https://help.aliyun.com/video_list/54214.html原创 2017-06-08 16:56:07 · 1612 阅读 · 0 评论 -
Ueditor 跨域图片上传
ueditor 文档官方地址:http://fex.baidu.com/ueditor/我在项目中使用Java,所以用ueditor的后台配置为 JSP如何自定义请求地址,官方文档也有说明,要跨域上传图片需要明白个东西,例如localhost:8080是ueditor页面localhost:2000是图片上传服务在localhost:8080项目下的 ueditor.all.js ...原创 2018-10-26 19:19:23 · 1776 阅读 · 1 评论 -
SpringBoot项目开发(二十二):SpringBoot MongoDB实现副本集(读写分离)
1.MongoDB可以单库、主从(官方现已不推荐)、副本集、分片加副本集,通过分片加副本集可以组成庞大的数据存储集群,而大部分项目使用副本集就能满足需求了2.MongoDB副本集(Replica Set):有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。3.副本集环境搭建,请参考 Mongodb安装与设置副本集4.SpringBoot实现 Mon...原创 2018-10-10 15:41:11 · 15836 阅读 · 15 评论 -
SpringBoot项目开发(二十三):Ajax Post数据到控制器方法,参数自动转换为对象
往往有这么个需求,在新增用户时,页面以 ajax 方式把 user 对象数据提交到后台控制器上,控制器方法中的参数以对象形式进行接收,这时就需要把json字符串自动转换为对象了在SpringBoot或SpringMvc中,有@ResponseBody 、@RequestBody 两个注解@ResponseBody 注解是把数据已json字符串的方式传给客户端@RequestBody 注解...原创 2018-10-18 19:51:41 · 2387 阅读 · 0 评论 -
SpringBoot项目开发(十六):springboot+mybatis+thymeleaf增删改查
1原创 2018-08-14 10:43:35 · 10708 阅读 · 3 评论 -
SpringBoot项目开发(十一):RabbitMQ消息队列
1.为什么使用消息队列?系统解耦:在分布式环境中,可能有A、B、C、D….等多个系统,A直接调用B提供的服务接口,当A系统修改时,可能需要B也跟着修改,这样耦合性比较强。MQ可以解耦这样的场景流量销峰:在电商抢购活动中,商品可能几秒钟就被抢购完,但是系统或数据库无法在几秒内处理所有请求,大量请求或许会让数据库直接崩溃,把请求压到队列中,消费者有序的处理队列中的请求稳定性:队列有确认机制,...原创 2018-08-09 11:40:54 · 2547 阅读 · 0 评论 -
SpringBoot项目开发(十):引用本地jar包与打包本地jar
标题可能有点绕口,在实际开发中,有时所有引用的jar架包无法在 maven 中央仓库里找到,那么引用本地jar包就成为了必须,然而在项目开发完成后,需要打包部署时,引用的本地jar架包没有相应的打包进去,就会导致项目运行失败或运行错误本篇文章分享引用本地jar与打包本地jar,总结起来很简单,分3步: - 1.在项目资源目录下创建一个文件夹,用来存放 本地jar包 - 2.在pom.xml...原创 2018-08-08 17:24:10 · 18455 阅读 · 0 评论 -
腾讯地图转换成百度地图坐标
/** * 坐标转换,腾讯地图转换成百度地图坐标 * @param lat 腾讯纬度 * @param lon 腾讯经度 * @return 返回结果:经度,纬度 */ public String map_tx2bd(double lat, double lon){ double bd_lat;原创 2017-08-29 10:42:57 · 5199 阅读 · 0 评论 -
网站全文检索--Solr
做CMS管理系统时,配置好模版(jetbrick-template),调用数据库取数据,一个页面上配置了多个数据源,会多次请求数据库,数据库连接一下子耗完,程序报错,这还是在本地开发环境,尝试设置增加数据库连接池大小后,刷新模版页面,出现数据库链接超时的机会减少了。但这不是解决此问题的根本办法。还有一个场景网站搜索时(全文检索),如果去查询数据库,当表中内容过大时会搜索延迟、无法响应等问题。使原创 2017-05-03 20:25:28 · 471 阅读 · 0 评论 -
java 多线程文件下载,断点续传
package com.zhuyu.utils;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import原创 2016-12-06 09:47:15 · 1888 阅读 · 1 评论 -
Java连接Oracle数据库简单实例
package com.java.dbtest;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class TestConne转载 2016-11-23 11:01:04 · 2230 阅读 · 0 评论 -
tomcat配置文件server.xml详解
规划: 网站网页目录:/web/www 域名:www.test1.com 论坛网页目录:/web/bbs URL:bbs.test1.com/bbs 网站管理程序:$CATALINA_HOME/wabapps URL:manager.test.com 允许访问地址:172.23.136.* conf/serv转载 2016-08-18 09:01:15 · 443 阅读 · 0 评论 -
tomcat7.0 下配置,多端口,一端口多实例
1、监控多端口的配置 enableLookups="true" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"/> enableL原创 2016-08-18 08:58:03 · 2820 阅读 · 0 评论