![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工作记载
文章平均质量分 74
littlebrain4solving
从09年以来一直从事JAVA领域开发与管理,对JAVAEE领域具有丰富的工作经验。
展开
-
阿里云 ECS Ubuntu 16.04 创建 Swap 分区
我为了省钱在阿里云买了一台最低配的主机(1 Core 512M RAM),但是内存实在太低了,为了能够好好的运行 Java 程序(无奈 Java 吃内存太狠了),所以利用 Linux 天然自带的 swap 技术进行开启内存交换空间,从而达到扩大内存的目的,这样就能省下不少银子了。注意:本篇不会讲述 swap 的原理,不理解的朋友可以自己查阅一下 什么是 Linux swap 交换内存 相关资料...原创 2019-03-16 09:37:40 · 822 阅读 · 1 评论 -
译文: Hibernate 查询结果映射 Result Set Mapping 处理
这是我的系列中第四篇也是最后一篇关于 SQL 结果映射设置: * Result Set Mapping: 基础映射 * Result Set Mapping: 复杂映射 * Result Set Mapping: 构造结果映射器 * Result Set Mapping: Hibernate 映射特性 在第一篇中,我们看到一些简单的映射定义把查询结果映射到一个实体中. 映射定义在第翻译 2017-11-07 16:23:37 · 1635 阅读 · 0 评论 -
如何使用 Spring MVC 进行单文件与多文件上传的三种情况
背景由于在做业务开发的时候常常会碰到文件上传的功能需求,而其实很多时候自己做过一遍又忘记了,又忘记具体在哪个接口用到了,然后查询很多资料都是零零碎碎的千篇一律。Java 多 文件上传、Spring 多 文件上传、SSH 多 文件上传、SSI 多 文件上传、多 文件上传原创 2017-10-18 10:26:03 · 1068 阅读 · 0 评论 -
Git常用命令汇总
暂存当前工作git stash查看暂存工作列表git stash list回到暂存工作可以指定索引回到具体哪个工作环境。git stash pop创建分支以当前分支为基础进行创建。git branch branch_name从远程获取分支配置到本地git pull 删除本地分支git branch -D branch_name删除远程分支git push origin :branch_namegi原创 2017-10-09 11:55:27 · 272 阅读 · 0 评论 -
Docker 容器与镜像清理汇总
说明由于我们使用Docker Swarm特性与Jenkins进行自动化部署升级服务,随着不断的升级会产生大量的未清理的老版本镜像常驻在本地磁盘之中,而这些镜像其实都已经没什么作用了,所以需要对其进行清理,所以本篇主要记录一些清理的方式,以便查阅。清理方式官方其实给出了一个类似“一键清除”的方案,只需要一行命令既可以对所有未使用的容器与卷进行清理,但我发现此命令还是会存在某些缺陷,比如依然会有一些镜像原创 2017-08-24 10:11:41 · 3096 阅读 · 0 评论 -
自动化测试入门教程(Maven + TestNG + Selenium)
说明随着项目后期的业务趋于稳定之后,传统的手工方式进行回归测试消耗太多的人力资源,那就要思考如何利用计算机帮助我们达到自动化测试的目的了;编写此篇文档的主要目的是为了针对项目组的新人员加入,如何让他们能够更快的熟悉什么是自动化测试,怎样来进行实现自动化测试,我这里主要采用标题所提到的框架与技术。 注意:如果你的系统业务还在持续改进还没有稳定下来请不要使用自动化测试,切记!切记!否则所消耗的人力成原创 2017-09-13 18:22:35 · 2366 阅读 · 0 评论 -
如何使用Jenkins的Pipeline与Jenkinsfile结合实现自动化部署
说明在刚开始使用Jenkins的时候,大部分的使用方式都是采用FreeStyle进行构建自动化部署的配置,但是随着业务的不断增加与变化也要创建N多个Job来进行管理,甚至当服务器环境迁移之类的事情产生之后发现这种管理方式太过于低效,需要手工来维护这些大量的配置信息,并且相关配置一旦改过之后无法追溯到某个版本,还有脚本的灵活度也不高,所以后来研究使用Pipeline的方式创建Job,然后创建Jenki原创 2017-09-28 16:02:14 · 16341 阅读 · 3 评论 -
Linux LVM 分区扩容与多磁盘分区合并处理
1.概念描述LVM主要在磁盘与文件系统之间建立一个层,主要用来管理多磁盘多分区进行与多文件系统的映射. 就是说N块硬盘分区后,可以把不同硬盘之间的分区进行组卷,有了这个组卷后再从组卷的基础上分配逻辑分区; 再对逻辑分区挂载到文件系统上就形成单一目录的概念.2.概念图 图一 图二 3.核心步骤磁盘分区fdisk(这里省略,关于磁盘分区参照Linux Fdisk分区篇,记住更改分原创 2017-07-21 10:24:14 · 13787 阅读 · 1 评论 -
DIY搭建黑群晖(XPEnology)备忘记载
准备说明进入XPEnology官网下载两个必须的文件”DSM_5.2-5644.PAT”与”XPEnoboot DS3615xs5.2-5644.5.IMG”;到Synology官网下载最新”Synology Assistant”用来辅助安装程序;然后再下载Win32diskimager用来制作镜像到U盘。注意这种方式安装的话最好准备一个U盘长期放在NAS那台电脑上做引导启动使用,以免拔走后无法正常原创 2017-07-03 16:56:19 · 8941 阅读 · 0 评论 -
自动化测试远程驱动静默方式(Jenkins+Selenium+Chrome+Docker)
说明由于之前一直使用PhantomJS作为线上静默方案,并且此方案PhantomJS驱动的Binary和测试代码都在同一台服务器上,导致有时候本地做好的Case经常无法完整的正常运作,并且大多数情况下,测试人员本地Case的编写都是采用Chrome作为首选项,所以我们希望能够统一使用Chrome来进行统一驱动,所以本文记载了工作中遇到的一些坑,以免忘记。踏坑过程所以,在最开始的时候我设想的方案以为是原创 2017-08-11 18:39:04 · 6569 阅读 · 3 评论 -
如何使用Git按需快速Clone仓库减少网络开销
说明由于有些仓库的规划与年代都比较久远,在历史的提交中可能存在很多咱们目前不关心与一些不再需要的依赖包,但是我们只想获取其中的某个目录或最近提交的历史即可,而不是把整个仓库clone下来(因为太过于庞大),这个时候需要用到git的sparse checkout与shallow进行处理;我这里的例子用的是selenium的仓库,在此仓库中,我们只需要获取java目录下的内容,其它各种文件并不关心;通原创 2017-09-06 09:57:31 · 528 阅读 · 0 评论 -
利用tomcat与LDAP集成并实现JavaEE标准资源权限管理方案
注意此篇主要是利用JavaEE规范标准涵盖的权限资源管理进行实现,并不涉及Spring Security或Shiro相关范围,需要获取Spring Security与LDAP整合的例子请参考此篇:点击这里,可能会涵盖一些WebSphere的注意点,但WebSphere与LDAP集成的具体配置此篇不会涵盖,因为只需要进到WAS的管理界面配置就好了。说明LDAP与Tomcat整合,你需要做几个步骤,首先原创 2017-07-28 09:59:36 · 2142 阅读 · 0 评论 -
(ELK/EFK)之Fluentd日志过滤解析与客户端IP地址地理位置处理
fluentd,elk,efk,kibana原创 2017-03-03 11:38:53 · 7081 阅读 · 14 评论 -
利用 Google Guava 提供的便捷方法对 List 进行内存分页
说明有时候在某些特定场景下面我们经常需要对内存中的队列进行分页批量操作,但很多时候都是重复造轮子,很浪费时间;在此问题的前提下为了节约后续的时间与加大产出,发现了 Google Guava 的一系列工具包包括了此功能,所以在这里我记录下来后续方便查阅。原创 2017-12-19 17:57:16 · 4161 阅读 · 0 评论 -
Golang 依赖包下载时候代理设置
unrecognized import path "golang.org/x/tools/go/buildutil" (https fetch: Get https://golang.org/x/tools/go/buildutil?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)原创 2017-12-22 11:11:25 · 12247 阅读 · 5 评论 -
三十分钟完成 Confluence 安装与破解
说明此篇省掉了很多具体的说明,其目的为了方便大伙一目了然,按最简单的方式进行操作,如果文中存在有疑虑的地方还望指出,谢谢!下载首先下载 Confluence 的安装包,以下两种下载方式选择其中一种就可以了,需要注意的就是版本号。官网页面下载https://www.atlassian.com/software/confluence/download链接地址下载wget https:/...原创 2019-03-16 09:35:31 · 9521 阅读 · 1 评论 -
InfluxDB 数据备份与恢复方式进行迁移
背景由于公司有一套 Grafana + InfluxDB 的监控系统,但由于某种原因需要做服务相关的迁移工作,而原有的历史监控数据希望也保留下来,所有就诞生了此篇,通过工作中实际的操作进行归档整理记录,方便后续的查阅。数据库备份命令格式influxd backup -database [name] [path-to-backup] 更多的使用方式可以利用命令 i...原创 2018-07-12 16:25:41 · 7048 阅读 · 0 评论 -
Openldap 在 Ubuntu 16.04 上安装部署
背景由于公司使用了很多第三方的开源系统,每次新加入一个员工或离职一个员工都需要在相应的系统增加或删除,这样很影响效率;为了能够使第三方的系统进行统一化管理,所以我们利用 Openldap 进行管理所有员工组织数据,包括部门等组织架构数据。注意以下的操作都是在 Ubuntu 16.04 版本上进行的,如操作系统不匹配的话可能相应的步骤也会不同,所以请注意!注意!注意!安装...原创 2018-06-19 16:41:25 · 4582 阅读 · 0 评论 -
三十分钟完成 Gitlab 搭建安装指南(支持 HTTPS 访问)
背景由于我们早期使用 phabricator 进行代码管理,但是在使用的过程当中发现和社区的 github 使用方式有些不同,所以为了让大伙都习惯 github 社区相同的使用风格,所以我们换成了 gitlab 作为公司内部的代码管理系统;并且其强大的 CI/CD 的方式为后续的持续集成工作打下基础。注意Gitlab 分为 社区版 (gitlab-ce) 与 企业版 (gitlab...原创 2018-05-02 16:43:51 · 35673 阅读 · 1 评论 -
Java 性能调优并诊断性能问题(jconsole,jvisualvm)
背景在某次工作的环境中发生接口调用一段时间之后出现 gateway timeout 504 问题,并随着大量的请求数量增大导致所有的接口都无法进行访问,第一时间怀疑是 tomcat 的请求连接数或线程池被压满,后来利用本篇提到的方法进行跟踪发现了问题;所以记录了如何使用 JVM 调优工具对这个问题进行定位并有效分析之后进行解决。初步查看(基于 Linux 系统)利用 top 查看...原创 2018-04-16 13:55:38 · 1010 阅读 · 0 评论 -
如何发布 Maven 项目到 Central 中央仓库
背景根据多年的项目开发经验,总会出现各种需要自己封装库文件的需求,虽然市面上已有大量的开源方案,但总会有时无法完全满足其需求,所以为了方便自己封装的库文件能够在社区团队协作中方便进行使用,所以需要把自己的库文件推送到 Maven 的中央仓库中去。 注意:如果只是公司的内部需求请采用搭建私有仓库的方式进行处理,本篇不展开私有仓库搭建的话题;这里主要是针对广大社区的使用或个人之后的使用的工...原创 2018-03-24 16:50:48 · 2396 阅读 · 0 评论 -
基于 Docker 虚拟化技术快速搭建 Otter 测试环境
背景由于公司的业务在高速发展的过程当中需要往海外进行扩张,就导致了海外访问内地的服务出现延迟极高的问题直接影响了终端用户的使用体验,为了应对这个问题我们设想的解决方案是分区域进行一整套环境部署,从而来彻底解决这个问题;但是分区域部署涉及到的主要问题就是数据库的读写与同步,并且如何保证数据的一致性,所以基于这一系列的问题我对 Otter 进行了一些调研并写此篇文章。说明此篇文章不会介原创 2018-02-02 14:02:59 · 2553 阅读 · 0 评论 -
Atlassian/Jira 与 Ldap 集成的配置示例截图(Active Directory server)
说明由于在配置 JIRA 的 LDAP 数据源的时候总会忘记具体的内容,防止配置丢失后再次配置,特记录下来方便查阅。 注意:在测试配置 Group 的时候要保障 LDAP 中的数据要和 classObject=Group 对应起来,这样在进行测试 member 与 memberOf 才不会出现问题,我在这个上面就吃过亏。图1图2图3图4原创 2018-01-05 18:01:05 · 3644 阅读 · 0 评论 -
GIT 免密登录解决多账户问题,涉及 SSH 私钥/公钥
背景在我们实际项目中使用 Git 进行项目版本管理的时候,总会出现需要输入账户与密码的情况,尤其是私有仓库与公有仓库混合起来使用的时候;但很多同学输入一次后就好了,而我总会出现莫名其妙的问题需要再次重新输入密码,为了一次性解决这个问题我采用免密的方式处理,所以记录了此篇文章。生成 SSH 私钥/公钥ssh-keygen -t rsa -C "your.email@example原创 2018-01-05 17:26:32 · 897 阅读 · 0 评论 -
Javascript & HTML5 Canvas 时钟绘制
说明我这里采用 Javascript 与 HTML5 Canvas API 来进行 Graphic2D 的绘制,主要利用数学的三角函数与圆有关的公式来达到目的,其实最主要是通过实际练习并对这些数学公式进行深入掌握;也希望能够帮助大伙儿明白其中的原理,我尽量用比较详细的方式进行编写这篇博文。数学知识圆的弧度与角度的关系,以及圆的基础知识。 圆周率(π) = 圆周长 / 圆直径(周长与直径的比值);原创 2018-01-03 10:33:58 · 531 阅读 · 0 评论 -
译文: Spring Security 与 Active Directory LDAP 例子
Spring Security Active Directory LDAP Example说明最近有一个用户需求,让我利用Spring Security结合他们内部的Active Directory (AD) LDAP服务器完成网页程序授权机制. 我搜了很多资料与踏了无数的坑终于找到了适合他们项目环境的配置。根据我找到的这些资料所涵盖的评论信息,我所碰到的问题貌似其他人也有碰到。现在这个例子就是我翻译 2017-07-27 17:53:16 · 1558 阅读 · 0 评论 -
基于Docker搭建或迁移Phabricator私有Git代码仓库
说明由于目前工作中收到指示,需要把原始的仓库迁移到另外一台机器上,所以边做边记载了此篇文档,以便后续中有相同的工作时便于查找,另外,希望此篇文档可以帮助其他的一些人。基于Docker运行环境通过Docker可以很快进行搭建部署MYSQL与Phabricator,这样可以省下我们很多时间避免耗费在PHP环境或其他环境上,这样我们就只需要专注迁移的工作就可以了。运行MySQL由于Pharicator对M原创 2017-08-18 13:32:14 · 1880 阅读 · 0 评论 -
译文:如何运用Spring框架的@Async实现异步任务
概要说明在此篇文章中,我们根据使用@Async注解进行探索Spring对异步执行的支持。简单的把@Async注解放到Bean的方法上就会使用不同的线程运行,也就是说,调用者执行此方法不用一直等待整个方法执行完毕。在Spring中比较有趣的一点就是事件机制也支持异步处理,如果你想这样使用的话。配置并开启@Async扫描支持让我们开始使用JAVA的注解配置开启异步处理机制,只需要简单的加上@Enable翻译 2017-08-03 15:30:45 · 2842 阅读 · 0 评论 -
【GNU】自由软件开发C&C++(环境安装篇)
【GNU】自由软件开发C&C++(环境安装篇)原创 2015-07-05 11:59:36 · 1069 阅读 · 0 评论 -
Linux Fdisk 分区使用手册
Linux Fdisk 分区使用手册概念分区主要分为这么几个阶段:1.创建扩展分区2.创建逻辑分区(一个扩展分区下可以容纳N个逻辑分区,前提是你的磁盘容量足够)3.格式化逻辑分区4.挂载逻辑分区至文件目录说明这里针对统一命令进行一些描述,根据这些命令灵活对分区做出处理.进入磁盘表#fdisk /dev/sda原创 2015-04-03 11:29:08 · 736 阅读 · 0 评论 -
【Openfire】一、下载源代码并部署。
准备工作1、下载Openfire源码包,官方地址:http://www.igniterealtime.org/2、解压Openfire的压缩包版本说明1、Myeclipse2014;2、Openfire 3.9.3 ;3、JDK1.6。开始部署创建JAVA项目openfire3.9.3;把“%openfire压缩目录原创 2015-04-03 15:17:15 · 970 阅读 · 0 评论 -
Java实现真正热部署(JRebel安装配置!)
前言:大多数人在进行J2EE项目开发时,都会遇到修改一处地方需要重新启动整个Web容器、而众所周知的是Tomcat只可以局部类才可以实现热部署;为了达到真正热部署(在添加类或者修改某类的方法名称或者添加方法的时候),这个时候需要依靠JRebel来进行实现了. 说明:JRebel是收费的插件项目,当然也可以进行破解达到我们的目的.. 进入正题: JRe原创 2014-10-24 16:52:50 · 1470 阅读 · 0 评论 -
DB2(Procedure)存储过程遍历循环!
由于有时候一些复杂的业务逻辑将要通过存储过程的循环语句进行处理;以下列出2种DB2存储过程的循环语句,方便以后的查看并使用!本人推荐第一种方式的使用,最大的优点就是比较直观;在需要操作很多字段的情况下,不需要定义太多的字段变量作为中间存储媒介. 一.FOR方式(FOR .. AS [游标名] CURSOR FOR [SELECT......])BEGIN --语句块原创 2014-10-24 16:51:17 · 6632 阅读 · 0 评论 -
ExtJS3的Store获取页索引递增值!
只有Store与PagingToolbar进行绑定了才可以使用以下方式获取页的索引递增值!原创 2014-10-24 17:16:43 · 683 阅读 · 0 评论 -
Javascript:动态加载JS两种方式!
第一种方式-直接把JS代码嵌入进页面:(这里采用的ExtJs的AJax加载方式为例子,也可以换成JQuery的Ajax形式加载,我就不写JQuery的例子了,自己可以去试试!)Ext.Ajax.request({ url : 'text.js', success : function(response){ var headTag = document.getElem原创 2014-10-24 17:12:41 · 901 阅读 · 0 评论 -
DB2(WITH AS)SQL递归查询
由于业务涉及到复杂的查询,需要多处引用查询过的一个结果集,而在DB2里面不支持使用变量作为中间存储(直接存储这个结果集),这个时候需要使用到DB2特定的一种方式(WITH AS).(注:存储过程里面不支持这种用法,本人亲测.) 以下是标准的用法形式:WITH [结果名](字段名...) AS ( [SELECT 字段名 FROM .....])SE原创 2014-10-24 16:47:39 · 1984 阅读 · 0 评论 -
【GNU】WINDOWS平台之Objective-C开发(环境搭建)
【GNU】WINDOWS平台之Objective-C开发(环境搭建)原创 2015-10-15 11:39:45 · 1167 阅读 · 0 评论 -
【Android】信鸽推送通知栏点击之重复打开APP&重复从Laucher主入口启动问题
信鸽推送重复打开APP问题原创 2016-03-16 10:45:18 · 10940 阅读 · 31 评论 -
Https信任证书申请与非信任证书生成方式,适用于TLS双向安全校验
IOS禁用HTTP,IOS停用HTTP,TLS证书生成,HTTPS证书生成原创 2016-12-16 10:56:28 · 2758 阅读 · 0 评论 -
CentOS 6 Telnet安装与防火墙设置
CentOS 6 Telnet安装与防火墙设置Telnet安装检查linux版本cat /etc/issue检查是否已经安装telnetrpm -qa | grep telnet安装telnet客户端(可选)yum install telnet安装telnet服务端(必须)yum install telnet-server开机自动启动因为装好telnet服务之后,默认是不开启服务的,下面我们需要修改原创 2017-07-21 11:51:53 · 1019 阅读 · 0 评论