随笔分类 -  开源框架

摘要:原文链接:http://www.javaarch.net/jiagoushi/708.htmjava QRCode生成示例 我们可以使用QRGen这个比较不错的包来生成QR code。 maven依赖: <dependencies> <dependency> <groupId>net.glxn</groupId> <artifactId>qrgen</artifactId> <version>1.2</version> </dependency> </dependencies> 阅读全文
posted @ 2013-06-03 10:15 zhwj184 阅读(682) 评论(0) 推荐(0)
摘要:spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置,来自:http://www.javaarch.net/jiagoushi/548.htmPropertyPlaceholderConfigurer是spring提供我们来把一些环境变量(数据库连接相关参数,文件路径等)统一管理起来,然后在bean中指定对应的变量的。但是往往开发环境,测试环境,生成环境的这些参数配置是不同的,那么我们如何使用PropertyPlaceholderConfigurer扩展来满足不同环境的配置需求,而不需要在不同环境需要修改代码或者配置。1.我们扩展下Proper 阅读全文
posted @ 2013-05-21 07:51 zhwj184 阅读(422) 评论(0) 推荐(0)
摘要:我们项目在公司的大战略下需要从oracle迁移到mysql,我们的项目使用的是ibatis,在ibatis层上需要的一些修改点如下:单元测试框架我们用的是jtester。1. 插入主键生成 Oracle insert时主键id是使用sequence方式: <insert id="MS-BRANDMEMBER-INSERT" parameterClass="TA-brandMember"> <selectKey resultClass="long" keyProperty="id"> SELE 阅读全文
posted @ 2013-04-29 10:35 zhwj184 阅读(370) 评论(0) 推荐(0)
摘要:eclipse maven工程加上参数-Dwtpversion=2.0就能够支持eclipse识别这个web工程。To convert the Maven web project to support Eclipse IDE, in terminal, navigate to “CounterWebAPp” folder, issue this command :mvn eclipse:eclipse -Dwtpversion=2.0You must add the-Dwtpversion=2.0argument to make it as a Eclipse web project. Imp 阅读全文
posted @ 2013-04-10 16:00 zhwj184 阅读(211) 评论(0) 推荐(0)
摘要:eclipse 远程文件实时同步,eclipse远程部署插件github地址:https://github.com/zhwj184/remotedeploy在开发过程中经常修改一些文件及时部署到测试环境中,比如apache静态资源文件,velocity模板文件等,那么我们可以通过这个eclipse插件设置好服务器信息,及时将本地修改同步到测试环境中,及时生效。将当前目录下的jar包放到eclipse的plugin目录下,eclipse要求3.4以上,jdk1.7.原理:利用jdk1.7的文件修改监听API将配置目录下的文件(一般为windows)如果修改添加,则实时使用ssh jar包的api 阅读全文
posted @ 2013-04-06 20:14 zhwj184 阅读(148) 评论(0) 推荐(0)
摘要:真是悲剧啊,一个破内部使用系统20多个人使用的后台管理系统有个excel文件上传功能,使用poi3.6版本来解析excel,出现的case是20多个人同时在上传,平均每个人上传的excel有1000多行,大小也就是不到100k吧,由于每个excel后端处理服务时间较长,导致同时需要处理100k*20的excel的行数,本来也就几M的数据量,可是poi解析居然要用掉的内存是这个量的几百倍,不可思议,使用代码如下: Java代码XSSFWorkbookwb=newXSSFWorkbook(inputStream);XSSFSheetsheet=wb.getSheetAt(0);Iterator&l 阅读全文
posted @ 2013-03-20 22:16 zhwj184 阅读(1265) 评论(0) 推荐(0)
摘要:poi3.9版本,官网http://poi.apache.org/slideshow/how-to-shapes.html import java.awt.Color; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.model.AutoShape; import org.apache.poi.hslf.model.Fill; import . 阅读全文
posted @ 2012-12-15 18:32 zhwj184 阅读(567) 评论(0) 推荐(0)
摘要:使用poi3.9版本使用的示例参考:http://poi.apache.org/spreadsheet/quick-guide.htmlimport java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFHeader; import org.apache.poi.hssf.usermodel.HSSFWor. 阅读全文
posted @ 2012-12-15 15:54 zhwj184 阅读(548) 评论(0) 推荐(0)
摘要:velocity 属性引用中的属性查找规则前己提及,属性可以引用到对象的命令. Velocity 会使用合适的策略选择引用到的命令. 它会根据协定的命令命令格式查找. 无论属性引用的的名字是否大小写,Velocity 都有固定的查找规则.如在$customer.address 引用时,查找顺序是:1.getaddress()2.getAddress()3.get("address")4.isAddress()对于VTL中大写的属性名 Address 引用,将是:1.getAddress()2.getaddress()3.get("Address")4.i 阅读全文
posted @ 2012-12-13 20:40 zhwj184 阅读(284) 评论(0) 推荐(0)
摘要:我们经常在web应用中需要对某些数据进行本地cache,特别是一些存在数据库或者其他需要访问其他服务的数据进行本地cache,如果这些数据更新不频繁,或者很少更新,而且对数据更新允许有一定的时间才反映到线上的话,那么下面这种方案个人觉得比较简单方便,不需要使用memcache等集中式缓存之类来实现。直接在web应用中使用定时器和InitializingBean来实现即可:请看service类:下面这个idNameCacheMap就是我们需要进行数据缓存的对象,在spring加载完之后的afterPropertiesSet获取缓存数据进行加载,然后使用pring的quartz定时器进行定时更新, 阅读全文
posted @ 2012-08-25 17:21 zhwj184 阅读(222) 评论(0) 推荐(0)
摘要:mysql有很完善的帮助文档,在mysql命令行下可以通过? 或者help 加上命令可以查看改命令的帮助信息,我们查下几个常用的help命令第一层帮助信息:? contents;mysql> ? contents; You asked for help about help category: "Contents" For more information, type 'help <item>', where <item> is one of the following categories: Account Managemen 阅读全文
posted @ 2012-08-24 13:39 zhwj184 阅读(329) 评论(0) 推荐(0)
摘要:这几天新项目每次发布,都发现load在jetty重启过程中突然load会从0.1突然升高到15以上,3分钟后慢慢降到正常非常,cpu使用率也升高了一些,但是jvm内存线程,gc都比较正常,所以怀疑应用已启动,执行了一些耗CPU的处理过程,查看了代码之后,应用已启动,执行最多的方法是dowork,而这个方法里面会有解析xml的过程: public OfferInfo parseXml(String content) throws NumberFormatException, XMLStreamException { if (content == null || conten... 阅读全文
posted @ 2012-08-15 18:59 zhwj184 阅读(224) 评论(0) 推荐(0)
摘要:接之前的博客http://zhwj184.iteye.com/admin/blogs/1630756关于asm使用的示例,这次使用asm来动态统计每个方法的执行时间,实现AOP功能。AOP的更通用的做法是对原始类动态生成子类,调用子类的方法覆盖父类,来实现AOP的功能。著名的 Hibernate 和 Spring 框架,就是使用这种技术实现了 AOP 的“无损注入”。下面我们就通过一个示例来对方法Foo.execute调用时动态注入方法执行前后的时间统计来统计方法的执行时间import java.io.FileOutputStream; import java.io.IOException; 阅读全文
posted @ 2012-08-15 13:11 zhwj184 阅读(275) 评论(0) 推荐(0)
摘要:asm 4.0 版本http://forge.ow2.org/plugins/scmsvn/index.php?group_id=23asm是java的字节码操作框架,可以动态查看类的信息,动态修改,删除,增加类的方法。下面基于4.0版本的一个使用示例,演示了对类Foo进行修改方法名称,增加方法,修改方法内容等import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method 阅读全文
posted @ 2012-08-13 18:22 zhwj184 阅读(785) 评论(0) 推荐(0)
摘要:今天使用velocity在java后台渲染一个map<Long,String>对象到vm模板上,通过get(111)获取不到map的对象的值分析。这是velocity1.6.4的处理,以后版本是不是解决了这个问题可以再查,个人认为在vm文件支持跟java一样加个L表示long之类的处理应该不难。具体代码如下:后台java生成设置代码Map<Long,String> map = new HashMap<Long,String>(); map.put(101L,"aaa"); map.put(102L,"bbb"); co 阅读全文
posted @ 2012-08-08 21:08 zhwj184 阅读(332) 评论(0) 推荐(0)
摘要:Tcpdump是linux下的网络数据包分析工具,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计 阅读全文
posted @ 2012-08-02 20:07 zhwj184 阅读(262) 评论(0) 推荐(0)
摘要:接上面java actor模型框架ujavaactorhttp://zhwj184.iteye.com/admin/blogs/1613351,上面的示例比较复杂,写一个简单点的示例:import java.util.HashMap; import java.util.Map; import com.ibm.actor.AbstractActor; import com.ibm.actor.Actor; import com.ibm.actor.DefaultActorManager; import com.ibm.actor.DefaultMessage; import com.ibm.a. 阅读全文
posted @ 2012-07-31 15:40 zhwj184 阅读(442) 评论(0) 推荐(0)
摘要:Actor模型是一种基于协程的消息传递模型,在并行计算和并发的消息传递中有很好的性能表现。一般的actor模块框架提供了超轻量级的线程和工具,可以在这些线程之间进行快速、安全、零复制的消息传递。在elang,ruby,lua等语言中都是直接在VM级别支持协程,VM帮你做context的保存和恢复。而在java中,却没有内置actor模型实现,但是有几个开源框架也模拟了actor模型的实现。基于 actor 的系统通过实现一种消息传递模式,使并行处理更容易编码。在此模式中,系统中的每个 actor 都可接收消息;执行该消息所表示的操作;然后将消息发送给其他 actor(包括它们自己)以执行复杂的 阅读全文
posted @ 2012-07-31 13:08 zhwj184 阅读(415) 评论(0) 推荐(0)
摘要:encache的web cache代码分析1.抽象filter分析 public abstract class Filter implements javax.servlet.Filter { ...... public final void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws ServletException, IOException { final HttpServletR... 阅读全文
posted @ 2012-06-02 08:45 zhwj184 阅读(281) 评论(0) 推荐(0)
摘要:web caching1.介绍Ehcache Web 是EhCache缓存框架的一个组件,主要用于Java开发Web项目中的一些缓存功能。包括一个单页缓存过滤器:SimplePageCachingFilter;页面压缩(gzip)支持;页面片段缓存等功能。在某些情况下能够很好的提高web应用的性能。2.simplePageCachingFilter 能够缓存httpresponse的html,json,xml等输出的完整页面或者页面片段的缓存,也支持gzipping的页面缓存。页面片段缓存可以参考SimplePageFragmentCachingFilter类。3.keys缓存的key值 缓存 阅读全文
posted @ 2012-06-02 08:42 zhwj184 阅读(160) 评论(0) 推荐(0)