logo头像

不忘初心 方得始终

tips

Linux下Tomcat的安装与优化

引言Linux系统已经搁置很久了,之前有在Ubuntu系统上开发过,但是Linux已经很久没有用了。现在公司把项目部署在Linux系统上,又要把Linux相关知识温习一下。这篇博客温习一下Linux下Tomcat的部署与优化,大部分的操作与在windows上相同。…

详解Tomcat连接池与连接数

引言在使用Tomcat时,经常会遇到连接数、线程数之类的配置,然后自己就去谷歌、百度,没有真正理解Tomcat配置的作用及当前业务环境、服务器配置等情况下Tomcat最优配置。 12345<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" maxThreads="1000" minSpareThreads="100" maxSpareThreads="200" acceptCount="900" enableLookups="false" compression="on" compressionMinSize="1024" compressableMimeType="text/html,text/xml,text/css,text/javascript" redirectPort="8443" URIEncoding="UTF-8" maxHttpHeaderSize="8192"/>…

Java生成PDF

引言在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同、证书等。方便用户查看,下载,打印。目前常用的解决方案是,把相关数据信息,生成对应的PDF文件返回给用户。之前有写过一篇博客关于JAVA实现HTML转PDF,不同场景下的业务不同,现在需要使用PDF生成证书,这篇博客主要介绍iText的使用。 本博客项目地址:https://github.com/mx-go/java_pdf_demo …

系统中功能点的版本控制

引言​ 开发过程中我们会使用版本控制工具,如SVN、Git等。但是我们一样会遇到一种情形:在一套试题系统中,有新建题目、编辑题目、删除题目等功能,且题目可以被多个人修改,每人修改一次即是一个版本。现在的需求就是需要记录每一次修改的详细信息,每次版本之间的差异,甚至还可以版本回滚。 ​ 例如题目编号为20170919170800000061的题目被A创建,依次被B、C、D各修改了一次,此时需要比较B和A间的差异、C和B间的差异、D和C间的差异,到最后审核阶段如果B 的版本比较符合,则需要把试题版本内容回滚到B版本作为最后的版本。…

Spring+Mybatis之Mapper热部署

引言​ Spring+Mybatis经常用,在项目中最痛苦的就是修改mapper文件的时候需要重启一下项目,每修改一次就需要重启一次项目。项目小还好,如果项目大,重启一次项目简直是要命。所以,去网上查资料看有没有办法让mybatis热部署,每次更新mapper文件不需要重启项目。 ​ 功夫不负有心人,终于找到了,这玩意只要发现mapper文件被修改,就会重新加载被修改的mapper文件。且只加载被修改的mapper文件!这个可省事了,效率又高,简直爽到爆。…

跨页面(Tab/Window)通信的几种方法

​ 今天开发一个功能遇到一个需求,在A页面点击查看详情后打开B页面进行修改或删除,删除后B页面关闭,然后刷新A页面里面的数据。相当于就是两个页面之间进行通讯,作为后端的我第一想法是利用webSocket 进行通讯,之后通过谷歌和百度找出了更为简便的方法。 …

JAVA实现HTML转PDF

​ 最近公司里面有一个任务,在线题卡,就是把客户在线编辑的题卡样式保存下来,然后可以导出为PDF格式。于是上网找了一系列的资料,找到了以下两种方法: 使用wkhtmltox 使用iText+Flying Saucer 但是还是强烈推荐用第一种方法。…

静态服务器搭建及前端知识点

引言​ 虽然是做后台开发,但是很多时候自己也兼顾了前台,并不是所有的项目都是前后台分离开发,所以在开发期间自己也总结和学习了前端了一些小知识,在这里进行总结,以便自己温习。 …

Linux基本命令

引言之前的公司有用过Linux,自己也学习了一段时间,但是很久没有用了,最近又在腾讯云租了个空间把系统装成Centos系统了,所以又把Linux系统重新捡起来,重温下Linux的基本知识。…

JAVA定时调度 Timer和Executors

近期在公司做了一个关于定时执行任务的功能(没有使用框架定时),查了一下资料,有Thread、Timer和Executors三种方法,之前使用的是Timer,但是详细查了资料觉得Executors更优,所以在这里比较一下它们的区别。…