- 博客(146)
- 资源 (17)
- 收藏
- 关注
原创 Guava并发(2)——ListenableFuture\FutureCallback\SettableFuture\Futures
ListenableFuture类 jdk5之后有了Future这种异步执行的结构ExecutorService executor = Executors.newCachedThreadPool(); Future future = executor.submit(new Callable(){ publ
2016-01-08 15:11:40
4243
原创 Guava并发(1)——Monitor的使用
一、说明Monitor就像java本土的synchronized,ReentrantLock一样,每次只运行一个线程占用,且可重占用,每一次占用会对应一次退出占用。Monitor.enter //进入Monitor块,将阻塞其他线程知道Monitor.leaveMonitor.enterWhen //进入Monitor块,将阻塞其他线程知道Monitor.leaveMonit
2016-01-08 14:46:01
2432
原创 Guava并发(3)——实现的异步回调
一、说明:1、装饰Concurrent包里的ExecutorServiceListeningExecutorService guavaExecutor = MoreExecutors .listeningDecorator(Executors.newSingleThreadExecutor());2、ListenableFuture的创建final ListenableFutu
2016-01-08 10:46:18
7915
原创 tomcat连接池配置详解
bean class="org.apache.tomcat.jdbc.pool.PoolProperties"> property name="url" value="${jdbcUrl}"/> 数据库驱动--> property name="driverClassName" value="com.mysql.jdbc.Driver"/>
2015-12-22 15:38:14
852
原创 对象list转化
Service层在做业务处理的时候,通常会把DAO层的domain类转化成DTO,并向上层提供服务。对于类变化不大的情况,可以使用beanUtils做处理。为了实现通用性,我封装了该类,代码如下:import net.xuele.common.utils.format.JsonUtils;import org.apache.commons.beanutils.BeanUtils;
2015-12-15 12:37:38
761
原创 模仿log4j的日志字符串格式化log(format,args)
什么也不说,直接看代码。import java.util.Collection;import net.xuele.common.utils.format.JsonUtils;import org.apache.commons.collections.CollectionUtils;import org.apache.commons.lang.ArrayUtils;import org.
2015-12-15 10:57:45
10967
转载 Mockito入门、实例及完整介绍
Mockito(一)--入门篇Mockito是一种mock工具/框架。我理解EasyMock有点过时了,Mockito是现在比较流行的。 什么是mock?说的直白一点,大家都知道unit test应该是尽可能独立的。对一个class的unit test不应该再和其他class有任何交互。 现在有一个类,扫描一个目录并将找到的文件都上传到FTP server。该类对于不同的FTP响应
2015-11-30 14:03:28
4008
1
转载 Spring-Mock--用于Spring 的单元测试
Spring 的 mock 组建主要分3部分:1. JNDIThe org.springframework.mock.jndi package contains animplementation of the JNDI SPI, which is useful for setting up asimple JNDI environment for test suites or stand-
2015-11-30 13:18:48
1071
原创 使用过滤器Filter实现网页静态化
设计目标: 实现网页的静态化。设计思路: 实现方法有三种:1. 通过动态模板引擎FreeMarker、Velocity渲染后,直接输出到一个静态文件中。2. 通过Nginx的相关插件(lighttpd、squid)做静态化处理,具体可以参考:http://www.oschina.net/question/54100_91053.
2015-11-26 09:49:58
3002
转载 将响应数据进行压缩处理的过滤器(CompressionFilter)
本文来源于:http://www.cnblogs.com/hemingwang0902/archive/2012/01/12/compression-filter.html同类内容有: 通用的用户登录过滤器(SessionFilter) 设置不使用缓存的过滤器(ClearCacheFilter) 设置站点黑名单的过滤器(Bann
2015-11-26 08:58:26
827
原创 问题-MyBatis不识别Integer值为0的数据
问题:使用MyBatis的过程中,发现一个值为0的数据,Mybatis所识别,最后定位才发现,是自己的写法有问题, and is_live = #{form.passLine,jdbcType=INTEGER} 更正成: and is_live = #{form.passLine,jdbcType=INTEGER} 完美解
2015-11-24 17:35:03
5832
原创 JAVA方法耗时信息捕捉并日志
一. 设计思想: 1、要保证日志的先后顺序,要保证输出的先后顺序; 2、其次就是要保证不要出现存储耗时时间的List量太大的情况,所以解决方法是 A、使用ThreadLocal,每个线程输出自己的日志,这样比较清晰;
2015-11-24 17:16:59
4791
转载 数据库连接配置5 -- 数据库Pool小结
小结 不管采用何种持久化技术,都需要定义数据源。Spring附带了两个数据源的实现类包,你可以自行选择进行定义。在实际部署时,我们可能会直接采用应用服 务器本身提供的数据源,这时,则可以通过JndiObjectFactoryBean或jee命名空间引用JNDI中的数据源。 DBCP与C3PO配置的区别: C3PO :DBCP: xml 代码
2015-11-19 20:51:49
526
转载 数据库连接配置4 -- 获取JNDI数据源
获取JNDI数据源 如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源。应用服务器的数据源 使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的JndiObjectFactoryBean类。下面是一个简单的配置: xml 代码 通过jnd
2015-11-19 20:49:33
963
转载 数据库连接配置3 -- C3P0数据源
C3P0数据源 C3P0是一个开放源代码的JDBC数据源实现项目,它在lib目录中与Hibernate一起发布,实现了JDBC3和JDBC2扩展规范说明的 Connection 和Statement 池。C3P0类包位于/lib/c3p0/c3p0-0.9.0.4.jar。下面是使用C3P0配置一个 Oracle数据源: xml 代码 <bean id="dataSource"
2015-11-19 20:46:24
529
转载 数据库连接配置2 -- DBCP数据源
不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spring中,数据连接是通过数据源获得的。在以往的应用中,数据源一般是 Web应用服务器提供的。在Spring中,你不但可以通过JNDI获取应用服务器的数据源,也可以直接在Spring容器中配置数据源,此外,你还可以 通过代码的方式创建一个数据源,以便进行无依赖的单元测试 配置一个数据源。 Spring在第三方依赖包中包含了
2015-11-19 20:41:49
914
转载 数据库连接配置1 -- Tomcat 中的 JDBC Pool
什么是连接池什么是 Connection Pool -- 连接池呢?我就不解释了。不太清楚的看这篇文章 [生产级别Nodejs开发实践-使用连接池](这篇文章的前半部分讲述了什么是连接池)Tomcat中的jdbc连接池它的英文文档在:[The Tomcat JDBC Connection Pool]Tomcat 不仅是非常受欢迎的 Servlet 容器,也是同时为我们提供了
2015-11-19 20:34:16
777
转载 国内一些大公司的开源项目
阿里阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分。有很多重量级的项目,例如LVS、Tengine,或者很有实践价值的中间件,例如 MetaQ(分布式消息系统)、dubbo(RPC框架)、cobar(数据库中间件),或者是Java世界的工具,例如druid、fastjson。都说国内Java公司的技术架构大部分来自阿里系,我觉得一方面来自阿里员工,一方面也可以来自阿里的开源项目。地
2015-11-19 14:43:19
511
转载 Web网站通知系统设计
写在前面: 通知系统是网站信息传播机制的重要的一部分,足够写一大章来说明。本文只梳理设计原则,后续相关内容会持续更新。 这里的通知包括但不限于公告、提醒或消息(不同使用场景下的功能定义不同)。 关于各客户端平台(ios、android、wp等)的通知机制,在其交互设计指南中有更详细的说明,大家可自行参考。 一、通知系统定义 通知系统,顾名思义即通知信息的传达处理系统。目的是为了让用户获
2015-11-16 10:54:22
829
原创 idea intellij对Spring进行单元测试
1、加入Junit4及SpringJUnit4支持 junit junit test org.springframework spring-test 2、创建测试类(wins:右键菜单------->转到(G)------->测试(E) 可快捷在
2015-10-20 15:26:43
13801
原创 《深入理解mybatis原理》系列文章
如何细粒度地控制你的MyBatis二级缓存(mybatis-enhanced-cache插件实现)本文介绍如何细粒度地控制你的MyBatis二级缓存,以及对应的mybatis-enhanced-cache插件实现...《深入理解mybatis原理》 MyBatis缓存机制的设计与实现
2015-09-25 17:02:34
1375
转载 MySQL存储引擎
MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述:1.MySQL有多种存储引擎:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎
2015-09-07 14:01:42
393
1
转载 CentOS安装及配置hadoop
1、集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。 对于Hado
2015-09-05 21:06:03
747
转载 8张图理解Java
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。1、字符串不变性下面这张图展示了这段代码做了什么12String s = "abcd";s = s.concat("ef");2、equals()
2015-09-04 14:33:30
423
转载 JAVA多线程面试
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么
2015-09-04 14:27:57
564
转载 构建需求响应式亿级商品详情页
商品详情页是什么商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口。京东商城目前有通用版、全球购、闪购、易车、惠买车、服装、拼购、今日抄底等许多套模板。各套模板的元数据是一样的,只是展示方式不一样。目前商品详情页个性化需求非常多,数据来源也是非常多的,而且许多基础服务做不了的都放我们这,因此我们需要一种架构能快速响应和优雅的解决这些需求问题。因此我们重新设计了商品详情页
2015-09-04 14:07:52
1163
转载 MySQL生成随机整数
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式FLOOR(i + RAND() *(j – i +1))。例如, 若要在7 到 12的范围(包括7和12)内得到一个随机整数, 可使用以下语句:SELECTFLOOR(7 + (RAND() * 6));
2015-09-04 11:49:32
7116
原创 kettle基本操作
准备工作: 1.下载:http://nchc.dl.sourceforge.net/project/pentaho/Data%20Integration/5.4/pdi-ce-5.4.0.1-130.zip 2.安装:在系统的环境变量中添加KETTLE_HOME变量,目录指向kettle的安装目录:D:\kettle\data-integration
2015-09-03 15:58:50
2585
原创 mysql将字符串格式化为日期
例子:select date_format('2015-08-29 02:01:45.793','%Y-%c-%d %h:%i:%s.%f')结果:2015-8-29 02:01:45.793000以下说明符可用在 format 字符串中:说明符说明%a工作日的缩写名称 (Sun..Sat)
2015-09-02 11:44:47
1918
转载 现阶段要学习JAVA技术
网络: Netty,mina,NIO,REST,OAuth,ProtoBuf,MsgPack Web:Tapestry,DWR,GWT,WebX 搜索: Lucene,Solr,Nutch 缓存/DB: mongoDB、HBASE,Cassandra,Redis, LevelDB,memcached、PostageSQL、BerkeleyDB
2015-09-02 11:20:49
469
转载 AOP和IoC的实现原理
用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真正花些时间读一读源码就知道它的一些技术实现其实是建立在一些最基本的技术之上而已;例如AOP(面向方面编程)的实现是建立在CGLib提供的类代理和jdk提供的接口代理,IOC(控制反转)的实现建立在工厂模式、java反射机制和jdk的操作XML的DOM解析方式. 下面来对spring源码中的基本技术进
2015-08-31 15:38:02
931
转载 java静态代理和动态代理(JDK&cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为
2015-08-31 15:31:34
325
转载 读取Properties配置文件
读取配置文件: /** * 通过文件路径载入数据 * * @param fileName 文件路径 * @return {@link Properties} */ public static Properties getPropertiesByFileName(String fileName) { Properties
2015-08-25 21:05:50
357
转载 TreeMap与HashMap的差异
1.AbstractMap抽象类和SortedMap接口AbstractMap抽象类:覆盖了equals()和hashCode()方法以确保两个 相等映射返回相同的哈希码。如果两个映射大小相等、包含同样的键且每个键在这两个映射中对应的值都相同,则这两个映射相等。映射的哈希码是映射元素哈希码 的总和,其中每个元素是Map.Entry接口的一个实现。因此,不论映射内部顺序如何,两个相等映射会报告相
2015-08-21 12:00:20
521
转载 JVM内存分析工具使用
Java 内存堆栈分析,是我们在分析线上问题常用的手段。线上会遇到一些问题从日志上无法分析的疑难问题。我们可以分析一些JVM内存,来看看问题到底出在哪里了。在生产环境上一般不允许我们使用一些例如JMX或是JProfile(我也是刚刚了解到)这类的工具。这类工具通常使用在开发测试中解决性能瓶颈和理解问题用到。今天我介绍一下我用过的一些工具,他们都不是在线分析工具,都需要先收集JVM内存消息导入到文件
2015-08-20 16:46:54
842
原创 JAVA-相关技术超链接
阿里中间件团队博客:http://jm-blog.aliapp.com/百度技术沙龙:http://www.infoq.com/cn/zones/baidu-salon/ 阿里技术沙龙:http://club.alibabatech.org/articles.htm并发编程艺术:http://ifeve.com/the-art-of-java-concurrency
2015-08-20 12:41:55
425
转载 Reactor构架模式及框架概述
本文转载自:http://www.cnblogs.com/hzbook/archive/2012/07/19/2599698.htmlReactor框架是ACE各个框架中最基础的一个框架,其他框架都或多或少地用到了Reactor框架。本文分析Reactor构架模式的基本原理。2.1 Reactor构架模式对每一个构架模式的分析,我们都使用参考文献的分析风格,着重分析意图、上下文、
2015-08-19 17:28:42
5125
原创 common.io中Tailer类读取文件内容乱码问题解决
common.io 是一个实用程序库,协助开发IO功能。org.apache.comons.io.input包针对SUN JDK IO包进行了扩展,实现了一些功能简单的IO类,主要包括了对字节/字符输入流接口的实现在项目开发中(斯凯闪电狗-日志监控分析系统),出现了输出中文乱码的问题。具体跟踪到org.apache.comons.io.input.Tailer类中。原因:通
2015-08-19 14:27:41
1491
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人