- 浏览: 23671 次
- 性别:
- 来自: 武汉
最新评论
-
caicai1230231:
我也想过,这是2步提交,确实有性能上的问题。我之前在网站上看过 ...
基于spring,Atomikos,mybatis的分布式动态数据源JTA实现 -
cywhoyi:
生产环境别这么干,存在的弱点很多。厂商间通过实现XA接口,本身 ...
基于spring,Atomikos,mybatis的分布式动态数据源JTA实现
文章列表
docx4j是一款在java世界处理微软word/ppt/excel文档的强大工具。它其实是一个半开源的产品。虽然它对WORD各种处理在API层 面进行了封装,但是像WORD本身的拆分,合并。其作者(Jason Harrop)是单独提出来了,封装成了商用的JAR包 ...
spring mvc中,变量有一个作用域的概念,你可以很方便使用注解,就能实现变量的的设置,在各自的作用域内优雅的使用该变量。
ModelAttribute
假如有这样一段代码:
myRequestObject这个引用,经过spring的处理,会自动把addStuffToRequestScope这个方法的返回值MyCommandBean作为值保存下来。实际上spring的model缓存这个值,其实这个值是在request的getAttribute里面。当你调用controller里面某个@requestmapping注解的方法,都能取到这个model里面的值。
这个 ...
jenkins的使用总结
- 博客分类:
- ci
jenkins,作为开源世界的持续集成工具(CI),表现其实不错了。虽然不能与Atlassian的bamboo相比,别人是商业版本。
我使用的是它的WAR包版本,可以从jenkins 官网下载。个人建议在tomcat7.0.32版本以上运行。
系统管理
主要是jenkins的管理后台配置,里面有很多功能。如系统设置,全局安全设置,权限管理,插件管理。其实最开始,是要安装相关的插件,如SonarQube Plugin(代码质量),Maven(构建),Subversion Plug-in(版本管理),Publish Over SSH(发布),SSH plugin(执行命令),JUnit ...
任务框架quartz的misfire的理解
- 博客分类:
- 中间件
quartz,java世界里面的任务管理容器。
至于为什么会有misfire这个概念,我想可以重这三个方面来进行说明:
1 所有的线程都在忙于更高优先级的任务
2 任务本身CRASH了
3 代码的BUG,导置错误的设置了JOB
基于这3种原因, ...
为什么需要一致性hash算法?
在缓存应用层面,如何保证数据访问的平横性,单调性?
平横性:主要是数据的平均分布,及当集群中某一个缓存服务失效,数据也能够正常分布
单调性:当数据插入某个缓存之后,再次调用,同样会落到对应的缓存上面。
两个算法比较:
consistent hashing:通常做法就是通过一个环状来对缓存的key进行均横分布,如果不能命中,查找相邻节点。另外,通过虚拟结点部分解决
数据的平横性问题(不能根本解决)。因为,节点如果失效较多,数据还是不均横。
RendezvousHash:HRW,高可能随机权重算法,这个算法的NB之处就在于解决了上面两个 ...
spring mvc作为展示层的组件,从参数预处理,验证,拦截,渲染。无不考虑的细致入微,你所要的做的,只是接口实现,切面接入,简单配置。
今天我们以分页功能展开来说明,如何把我们复杂的参数处理从控制器进行剥离!
第一步
我们展示一个重量级的接口:HandlerMethodArgumentResolver
第一段红色,表示在某个参数进行了注解之后,是否启用自定义的参数处理,其实就是一个标识符
第二段红色,是你的自定义的参数处理逻辑,里面可以封装查询参数的组装逻辑
看一我的实现
重点看一下DataCriterias.getFromRequest()这个方法
...
Zookeeper相关学习笔记(不断更新中)
- 博客分类:
- 中间件
最近一直在看倪超的那本《从paxos到Zookeeper分布式一致性原理与实践》,整本书干货满满。个人感觉在章节顺序编排上有些小问题,不过,不影响它作为介绍这款中间件产品特性及原理而全面阐述的开山之作。总之,内容很多,我也只是了解了皮毛。接下来写的种种,算是我喝了这碗鸡汤,消化来剩下的。
分布式系统定义:
是一个在硬件和软件组件分布在不同在网络计算机之间,彼此只是通过消息传递进行通信和协调的的系统。
分布式系统特性:
A 机器多 ...
mybatis目前一直作为我主要使用的ORM框架,当然,它的简单,SQL可控,高效才是我选择它的最终原因。前段时间学习了他的实体,ORM的XML文件自动生成,感觉也是比较简单。下面稍微介绍一下具体的配置方面的
在它的官网上,有几种方式来生成类及配置。
1 从命令提示符 使用 XML 配置文件
2 作为Ant 任务使用 XML 配置文件
3 作为Maven Plugin
4 从另一个Java 程序使用 XML 配置文件
5 插件生成
今天,我只讲实践第3,5点:
一 使用MAVEN插件
首先在你的POM里面添加一个PLUG,
VisualVM 安装到eclipse
- 博客分类:
- tools
安装准备:eclipse引导vm程序:visualvm_launcher_u1_eclipse_36.zip地址:http://java.net/projects/visualvm/downloads/download/release133/visualvm_launcher_u1_eclipse_36.zipVM程序: visualvm_138.zip 地址:https://java.net/projects/visualvm/downloads/download/release138/visualvm_138.zip步骤:1 找到install new software, 选取local进行 ...
Thymeleaf 核心思想
- 博客分类:
- java core
Thymeleaf 是一个纯JAVA实现的,能处理XML/XHTML/HTML5 等模板文件解析的工具。他能处理一切基于XML文档格式的文件。特别是在WEB展现层面,可以很流畅的进行页面数据的渲染与显示。通过其DOM解析技术,把模板样式读入内存(当启用缓存模式),当页面需要展现时,读取内存中的样式,通过与后端数据的封装填充,最终显示给用户。这样在大量用户访问的时候,可以降低页面渲染产生的IO,提高用户体验。另外,对于开发者,他的学习成本也不高。内置是基于ONGL语法来支持页面的语法,比如在SPRING下面,我们是这样写的:<form:inputText name="userNam ...
我目前认识的beanshell
- 博客分类:
- java core
beanshell是一个轻量级的脚本语言,具有动态性,完全支持JAVA语法。原理就是通过JAVA的反射获得JAVA语句和表达式的实时执行能力。Jmeter的内置脚本就是beanshell,用来处理定制的性能测试脚本编写。结合我的使用经验,我觉得以下场景可以考虑引入这个东西1 类的动态加载2 复杂逻辑与规则定义的可配置化3 与第三方不确定对象的处理使用这个工具之后,我觉得理论上所有的业务调用都可以基于接口来开发,真正的实现代码不一定的JAVA代码,可能是beahshell脚本。如果你想获得更强的JAVA处理能力,可以同样写把JAVA代码(可以不是以.java结尾的文件)放在JVM之外的环境,在运行 ...
resin4的jersery(jws)的兼容问题
- 博客分类:
- 中间件
resin3到resin4变化确实挺大的。个人比较钟情于tomcat,不知道公司那帮人为毛选择resin,并且还不是收费版本的,这是要闹哪样!!!唉。今天,处理了一个项目上的性能问题,需要通过jmeter压测一下,看看到底有没有提升。当我部署到实体机上是,服务老是启不来。经过调查,发现是是resin4下面的系统自带lib\eclipselink-2.4.0.jar的问题,它有一个类MOXyJsonProvider.需要加载jws的实现类javax.ws.rs-api-2.0.jar,其它这个JAR,在我的MVN依赖里面早就就了,因为resin3是运行OK的。最后没有办法,只好把 ...
服务器CPU占用高排查记录
- 博客分类:
- java core
最近发现服务一个共用服务接口的CPU占用比较高,以下是排查记录 1 查寻当前CPU占用高的PIDps Hh -eo pid,tid,pcpu | sort -nk3 |tail
17259 17443 1.4
17259 19460 1.5
17259 23916 1.5
17259 17457 1.6
17259 18260 1.6
17259 22789 1.7
17259 17472 1.8
172 ...
对于后端的参数校验,我们一直在强调的验证规则,提示信息的重用。这不,springmvc通过集成Valid最大程序减少了我们的工作量。其实后端的参数过滤,是分几种请求来源的。每种的处理都不太一样,但是我们如果能重用验证规则,提示信息,那就很强大了。1 常用的表单提交,需要页面返回错误信息2 AJAX提交,需要JSON格式返回,或者XML3 接口调用,同样需要对应的数据格式返回对于这3类请求,我今天讲的是第3种,是可以重用第1种的资源和验证规则。它就是ControllerAdvice(控制建议)
在ubuntu安装Phabricator
- 博客分类:
- ci
前言:
Phabricator是facebook团队进行codereview的一个工具,是基于php进行开发的。界面简洁优雅,是团队做代码评审的好帮手。个人认为,是当前最好的code review平台。官网地址http://phabricator.org/
1 查看服务器版本
stnts@ubuntu:~$ uname -a
Linux ubuntu 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 2 创建目录mkdir r ...