JAVA项目实战经验
文章平均质量分 79
Danna_Danna
静下心来,看看自己能写一个什么样的人
展开
-
Dom4j读取xml文件——JAVA
前几天,用Dom4j写了三个版本的读取XML文件,现在分享下。第一版本:XML: AddSuccess.jsp Dom4j读取此xml代码如下:public static void read() { try { // 读取并解析XML文档 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 SAXReader rea原创 2014-08-21 16:53:08 · 9701 阅读 · 23 评论 -
读写并发测试发现解决
也许,你即使加了锁,也未必能防止并发的出现,往往,惊喜就隐藏在背面,转过身,你就会发现真实,不要让表面美好现象蒙了你的双眼 。背景 先说背景吧,我们是接收第三方数据,从数据过来到数据入库经过三个服务,第一个服务是老大的数据接收在保存到文件中的同时Push给我,我经过初次解析,将需要的数据属性发送给雷明的data-bus-java。 在项目即将上线之前,老大让我加大测试力度,因为行业的缘故,我们的数据都是晚上数据异常的多,白天数据几乎没有,所以,我们都是晚上跑数据,白天的时候检原创 2016-10-30 10:40:52 · 2052 阅读 · 1 评论 -
RabbitMQ原理简单介绍
其实这篇博客,也算不上是什么原理,只是将我知道的一些RabbitMQ的知识简单罗列下,自从我来公司到现在,虽然一直都在用RabbitMQ,也一直想着把这块总结下,却一直在给自己找借口,最近一段时间,觉得火候到了,也该总结总结这块的东西了,算是给自己的一个交代吧。 不说其他的,说说RabbitMQ吧,RabbitMQ在我看来就是AMQP(Advanced Message Queuin原创 2016-08-20 15:16:00 · 11886 阅读 · 3 评论 -
巧妙利用JDK1.8新特性解决多if判断及其性能测试
先说说场景,最近接第三方的足球走地数据,需要将这些数据入库,设计到一个足球的eventType的整理,我们自己的库中有一套我们自己的eventType,这些eventType包括进球,红黄牌等事件。第三方数据可能将两个队的进球事件分开成HomeGoal和AwayGoal事件,而在我们的库中将这两个事件合并成一个事件Goal。 将第三方的事件对应到我们自己库中的事件,在解决方式上你可能想到的第一个方法是使用if或者switch case,或者某种设计模式。我想说这些方式都不可取,先说if和swit原创 2016-07-30 17:13:53 · 11456 阅读 · 3 评论 -
错误号org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
前段时间,在linux环境下,我们的程序出现了这样一个错误,如下:2016-06-16 12:47:52.190 WARN 10150 --- [http-nio-8082-exec-2] o.a.commons.httpclient.HttpMethodBase : Going to buffer response body of large or unknown size. Usi原创 2016-07-17 21:13:17 · 92328 阅读 · 4 评论 -
Hprose
我们现在写的代码,经常是这样的,首先写一个接口,再写一个接口的实现类,再写一个测试方法,在测试方法中调用这个类,我们写的这些,其实就是一个服务的提供方和服务的消费方,只不过是我们是在本地调用罢了。 跨入互联网公司,我们经常遇到这样的情况,公司提供很多个大大小小的服务,每个服务原创 2016-05-26 19:29:04 · 11019 阅读 · 4 评论 -
从足球两大类事件来说Map和Enum的巧妙
上篇博客,我已经介绍了下我们项目V1.0和V2.0的一些情况,对着两个版本进行了比较总结。也提到了V2.0解决了一个V1.0没有解决的问题。今天,我就来说说这个问题,已经在解决过程中,如何巧用map去除双层循环。 这个问题是这样的,这个问题主要是针对足球,在向操盘提供足球的比分,以及足球的进球、点球、红牌、黄牌事件时,在一场比赛中,可能会因为在比赛过程中时间的不准确而出现调表,打个原创 2016-05-16 23:04:45 · 2529 阅读 · 0 评论 -
解决Linux下AES解密失败
前段时间,用了个AES加密解密的方法,详见上篇博客AES加密解密。加解密方法在window上测试的时候没有出现任何问题,将加密过程放在安卓上,解密发布到Linux服务器的时候,安卓将加密的结果传到Linux上解密的时候却总是失败,让用户不能成功登录,经过检查,测试后,发现AES在Linux上解密失败,出现错误: javax.crypto.BadPaddingException:原创 2015-07-21 22:44:23 · 12842 阅读 · 6 评论 -
AES加密解密
由于项目需要,所以最近看了下AES的加密解密,话不多说,直接看实现:加密:// 加密 private static byte[] encrypt(String content, String password) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new S原创 2015-06-27 12:07:46 · 3023 阅读 · 1 评论 -
java自定义注解并解读
不多说,先看例子,通过例子来说这个自定义注解。自己定义了一个注解类testType:package com.zhudan.test;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;imp原创 2015-03-31 15:47:47 · 1444 阅读 · 8 评论 -
commons-fileupload实现上传——JAVA
在许多Web站点应用中都需要为用户提供通过浏览器上传文档资料的功能,例如,上传个人相片、共享资料等。在DRP中,就有这个一个功能,需要将对应的物料图片上传并显示。 对于上传功能,其实在浏览器端提供了很好的支持,只需在Web服务器端获取浏览器上传文件并保存。为了简化和帮助Web开发人员接收浏览器上传的文件,一些公司和组织专门开发了文件上传组件,比如说commons-fileupload,现在就看看这个功能是怎么实现的。需求:对应的物料图片上传并显示引入jar包: 首先要引入两个j原创 2014-07-28 21:13:43 · 8087 阅读 · 13 评论 -
代理模式(静态代理+动态代理)——JAVA
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代理:由程序员创建或特原创 2014-08-05 17:25:30 · 2503 阅读 · 11 评论 -
PhantomJs+MutationObserver实现动态页面数据抓取
IT行业,支撑业务的变化需要优秀的大量的数据,我们需要适应数据的动态变化,拿到这些动态变化的数据,分析,然后提供给自己的项目,支撑公司的业务。最近,就碰到这种,需要获取网页上不断变化的数据,只有在数据发生变化的时候,才取这个变化的值,并将其存放到库中。 其实PhantomJs,乍看这个名字,还以为是什么Js,其实吧,它就是一个没有页面的浏览器,它跟其他浏览器的最大的区别就在于它没有原创 2016-11-18 21:01:07 · 3956 阅读 · 3 评论