0%

一、背景

随着服务越来越多,以及项目越来越复杂,在上线发布高峰时段镜像上传、容器创建时间很长。Jar包越来越大,编译打包、上传下载镜像会占用大量带宽,造成拥堵。因此改善这种情况,一方面可以通过合理的依赖配置减小jar包体积,另一方面还可以从镜像入手。

阅读全文 »

很多同学一定都经历过为了找一个好用的网页截图软件而各种搜索的情况,那一定不知道强大的Chrome自身就可以直接截取网页图片。下面就是详细步骤:

阅读全文 »

设计模式是什么?

“它是一套理论,由软件界的先辈们(The Gang of Four:包括Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)总结出的一套可以反复使用的经验,它可以提高代码的可重用性,增强系统的可维护性,以及解决一系列的复杂问题。”——摘自《设计模式之禅》

阅读全文 »

公司项目上需要生成一张入学通知图片给用户,目前采用的是通过后端Java使用Graphics2D库将动态数据填充到背景图上再写回浏览器的方式。由于设计图采用了几种比较特殊的字体,字体文件考虑到部署可迁移,没有采用安装到系统或者jre的方式,而是放在项目包下,最开始跟页面文件一起放在WEB-INF目录下,在Controller中使用request.getSession().getServletContext().getRealPath("WEB-INF/ttf/iYuanTi.ttf")来获取字体文件的真实路径,通过Font.createFont(fontFormat, fontStream)加载字体,但是这样做会造成服务器硬盘爆满,具体原因另做分析。

由于上面方法的问题,考虑将字体文件放在resource文件夹下(打包以后在classes下),在应用初始化的时候进行加载,只需加载一次,本地调试没问题,打包,上测试机,访问,没出来,看日志,加载字体的时候抛出了java.awt.FontFormatException: bad table, tag=1196445523异常,查文件、部署包都没问题,发现字体文件的大小不太对,对比文件Hash,确实部署包和源文件不是同一个文件了。

阅读全文 »

之前我所接触到的iReport制作报表的方式是,将查询数据的SQL卸载报表jrxml文件里,在Java项目里将数据库连接,以及报表需要的一些参数一起传给报表,再由jasperreports将报表导出为所需要的格式。这种方式一般用来导出一些格式相对单一的报表,如表格、单个或多个图形等。

阅读全文 »

公司项目采用Docker技术进行了分布式部署,每个服务有多个实例进行负载均衡,出现问题查日志变得异常痛苦,这时发现了比较常用的一种解决方案——ELK(ElasticSearch + Logstash + Kibana)。

这里是Logstash配置文件中的配置项说明,翻译自官方文档——logstash-settings-file章节,如有不当之处,希望大家可以帮忙指出。

阅读全文 »

Elasticsearch是一个开源的基于Lucene的搜索服务器,Elasticsearch是使用Java语言开发的,它提供了分布式多用户全文搜索引擎,提供基于RESTful 的API接口。Elasticsearch还提供了一个Java的Client,以及相应的API。

Spring Data中提供了相应的模块Spring Data ElasticsearchSpring Data Elasticsearch模块就是基于这个Client实现的。不过不知道出于什么原因,最新版的Spring Data Elasticsearch 2.1.3.RELEASE也仅仅支持到Elasticsearch 2.4版本。本文将使用Spring Data Elasticsearch 2.1.3.RELEASE

阅读全文 »

我们都知道Spring可以注入各种对象,而有些时候,我们需要注入一些配置项,而不是一个对象。

可以发现Spring提供了一个PreferencesPlaceholderConfigurer类,可以方便的让我们使用注解将properties中的配置信息注入到对象中。

阅读全文 »