Spring Data JPA 技术分析

在另一篇介绍Spring的文章[1]里我介绍了Spring Data JPA,借助Spring Data JPA,对数据库做CRUD需要简单的四步操作:先创建数据库表和Java entity类;声明一个接口ItemRepository继承CrudRepository;再在接口ItemRepository里声明Query MethodfindByName;最后把ItemRepository注入到我们需要用到的地方,调用就可以了。 这篇文章再深入一点,解释/分析一下Spring在背后做了什么... »

Spring 介绍

这篇文章对Spring Framework做一个基础的介绍,先介绍Spring和Spring相关的几个概念,再介绍3个常用的Spring项目/模块:Spring MVC、Spring Data JPA、和Spring Boot。 Spring 和 Java EE Java平台有多个“版本”,和Spring相关的有两个:Java SE和Java EE。Java SE(Java Platform, Standard Edition)包含JVM和Java最核心/基本的类库API;而Jav... »

用OSX的say命令让Nagios报警叫出来

Mac OSX系统有个有趣的命令say,传入一段文本就可以让系统读出来。比如你可以打开OSX的Terminal.app,然后输入say hello OSX,听听会不会响。 因为机缘巧合,我们项目的CI服务器装在一台Mac Pro上了,在写脚本监控CI Server进程或者做CI monitor的报警的时候,就可以用这个say命令把一些信息读出来,再在Mac上插个大喇叭,这样整个项目组都能听得见了。 比如:say Go server went down, no dzuo no die, ... »

向多台机器分发文件 - bounce

最近在公司遇到了把一个几十G的虚拟机镜像文件分发到10来台机器上的问题,前期基础设施没有搭建好到后来就是会比较痛,如果这些机器用puppet或者chef管理起来了的话这事儿或许会好办一些。 首先当然不能手动一台一台拷贝。 其次也不能同时向这十几台机器,因为: 假定文件size是S,出口带宽是B,机器数目是C, 那么分发时间是S/(B/C),等于(S/B)*C,还是相当于一台一台拷贝的速度 有没有更快的方案? 很自然的我们想到了非常高大上P2P方案,这个业界传说face... »

在PowerShell里并行执行脚本

在Bash里并行执行脚本有几种方法,可以在Bash里可以用把一个任务后面加&开一个subshell直接甩倒后台去执行,也可以用GNU Parallel对并行执行的任务做更精细的控制。 而在PowerShell脚本里并行执行脚本,也有多种方法,一是用Start-Job命令启动一个background job,二是用并行的Workflow。 并行的Workflow PowerShell 2不支持,并且PowerShell的Workflow有一个很明确的限制是不能包含交互的命令。比如... »