
java
文章平均质量分 76
kiwi小白
这个作者很懒,什么都没留下…
展开
-
Java NIO Fundamentals
Basic Concepts1. Channel & Buffer: data is always read from channel to buffer, or writtern from buffer to channel2. Non-blocking IO: non-blocking while read and write data3. Selector: A single t原创 2016-06-25 17:51:18 · 2053 阅读 · 0 评论 -
Xtext Headless模式代码生成
XtextXtext是eclipse下用于构建DSL的工具。其使用非常方便,除了支持开发DSL以外,还能得到eclipse语法高亮、错误提示等功能。http://www.eclipse.org/Xtext/index.html建议先读读官方文档里面的最开始的几个tutorial,对Xtext的使用有个大概的了解。http://www.eclipse.org/Xtext/documentat原创 2014-07-21 22:06:30 · 2061 阅读 · 0 评论 -
初识Spring Boot
参考资料Spring Boot Referencehttp://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started-first-application-executable-jar原创 2014-05-26 10:03:07 · 19484 阅读 · 0 评论 -
Jersey中处理POST格式的Best Practice
REST中,我们可以把接受POST请求的方式写成如下的方式: @POST @Consumes(MediaType.APPLICATION_JSON) public Response createProduct(CreateProductJson createProductJson, @Context UriInfo uriInfo) {CreatePr原创 2014-06-26 01:01:52 · 6040 阅读 · 0 评论 -
使用Mockito中@Mock快速创建mock对象
1. 快速创建Mock对象:我们创建mockdui'xiang原创 2014-06-25 00:15:24 · 11229 阅读 · 0 评论 -
Mongodb ODM: morphia
Mongodb Java Driver虽然Mongodb提供了java driver,但是如果我们直接使用driver进行mongodb的操作,代码冗余很多,使用不是方便,容易出错。这就像我们在RDBMS中使用sql直接操作数据库一样,大多数时候我们不提倡这样做,更多的时候我们使用MyBatis或者Hibernate做ORM。Mongodb中有这样的工具帮助我们完成ODM吗?有很多,这里我原创 2014-07-16 12:13:26 · 3062 阅读 · 0 评论 -
Java中的Mongodb单元测试
如何进行Mongodb测试?我们在java中使用Mongodb作为数据库进行存储的时候,怎么样对于进行测试呢?一种可能直接的方式就是在setUp中getDB,然后在tearDown里面dropDatabase。这样的方式相对来说比较慢。一种更好的方式就是使用fake的数据库,比如embedded的Mongodb用于测试。http://xunitpatterns.com/Test%20Doubl原创 2014-07-16 11:10:01 · 7048 阅读 · 0 评论 -
Java线程基础(四):ThreadGroup、Volatility
ThreadGroup参考资料:http://www.javaworld.com/article/2074481/java-concurrency/java-101--understanding-java-threads--part-4---thread-groups--volatility--and-threa.html原创 2014-04-28 11:58:21 · 954 阅读 · 0 评论 -
Java线程基础(二):Synchronization
can'o'kaohttp://www.javaworld.com/article/2074318/java-concurrency/java-101--understanding-java-threads--part-2--thread-synchronization.html原创 2014-04-23 13:19:58 · 1196 阅读 · 0 评论 -
Java线程基础(一):Thread和Runnable
参考资料:http://www.javaworld.com/article/2074217/java-concurrency/java-101--understanding-java-threads--part-1--introducing-threads-and-runnables.html原创 2014-04-23 09:31:57 · 1268 阅读 · 0 评论 -
玩玩儿Flyway:数据库迁移
在软件开发的过程中,我们原创 2014-04-05 16:39:23 · 10390 阅读 · 4 评论 -
Java中的String、StringBuilder、StringBuffrer
StringString就是字符串,Java中的字符串是Immutable(不可变的)。如: String before = "before"; String after = before.replace('b', 'e'); // before => "before", after => "eefore"因为String本身是原创 2014-03-31 13:21:24 · 6050 阅读 · 0 评论 -
java8中的Date、DateTime、Instant
LocalLocalDate.of(2014, 1, 20);=> 2014-1-20也可以表示为:LocalDate.of(2014, Month.JANUARY, 20)原创 2014-07-23 22:43:13 · 26730 阅读 · 2 评论 -
Java线程基础(三):线程调度以及wait/notify
参考资料:http://www.javaworld.com/article/2071214/java-concurrency/java-101--understanding-java-threads--part-3--thread-scheduling-and-wait-notify.html原创 2014-04-24 09:43:13 · 985 阅读 · 0 评论 -
java8 Stream和Lisp对比
java8支持了函数式编程,lisp中最基本的元素就是list,car,cdr,cons,那么通过java8的stream API怎么能够构建类似lisp的使用方式呢?1.(car list)取出头list.stream().findFirst().get()2. (cdr list) 取出除头部外list.stream().skip(1)原创 2015-10-09 18:07:39 · 2814 阅读 · 0 评论 -
Log4j ObjectRenderer定制对象显示
log是每个应用必备的功能,log4j是其中使用很多的一个:logger.info("something happend");可能有人认为log4j只能log一般的String,其实不然,log4j也能log一般的Object:logger.info(new Hello("kiwi", "Good morning"));但是这个时候,显示的是:0 [main] INFO原创 2014-04-09 15:08:53 · 2926 阅读 · 1 评论 -
脑法之一 --- DEBUG与搜索算法
何为DEBUG?DEBUG,就是搜索BUG,让后把它DE了。原创 2015-07-21 13:46:04 · 2883 阅读 · 3 评论 -
【文档摘要】J2EE Persistence - Controlling Concurrent Access to Entity Data with Locking
参考资料:https://docs.oracle.com/javaee/7/tutorial/doc/persistence-locking001.htm#GKJHZ原创 2014-11-24 21:20:03 · 1314 阅读 · 0 评论 -
【文档摘要】J2EE Persistence - Introduction to the Java Persistence API【Querying Entities】
JPQL (Java Persistence Query Language)\Criteria API(typesafe)原创 2014-11-20 23:39:32 · 1196 阅读 · 0 评论 -
【文档摘要】J2EE Persistence - Introduction to the Java Persistence API【Entities Inheritance】
参考资料:https://docs.oracle.com/javaee/7/tutorial/doc/persistence-intro002.htm原创 2014-11-19 18:14:37 · 862 阅读 · 0 评论 -
【文档摘要】J2EE Persistence - Introduction to the Java Persistence API【Managing Entities】
Entity ManagerEntity Manager是和一个对应的Persistent Context相关原创 2014-11-19 22:15:57 · 985 阅读 · 0 评论 -
【文档摘要】J2EE Persistence - Introduction to the Java Persistence API【Entities】
1. 参考资料:https://docs.oracle.com/javaee/7/tutorial/doc/persistence-intro001.htm#BNBQA原创 2014-11-19 11:21:25 · 1035 阅读 · 0 评论 -
AWS ELB配置HTTPS转HTTP时,Jersey中scheme的问题
AWS ELB配置HTTPS转HTTP这个时候,后端instance收到的请求就是http,如果你使用了类似UriInfo.getBaseUri这样的方法去构造HATEOS,那么你返回的URI就会是http://api.server.com/,而非https://api.server.com/读ELB相关文档,ELB会在request上加上X-Forwarded-Proto,所以,原创 2014-09-26 21:40:05 · 5389 阅读 · 0 评论 -
Centos java standalone service - boot on start
假设我们已经有一个jar包:原创 2014-09-23 19:50:00 · 1315 阅读 · 0 评论 -
Spring Boot + Jersey
Jersey是一个非常好的Java REST API库。当你用Jersey实现REST的时候,是非常自然的。同时Spring Boot是Java世界中另一个很好的工具,它减少了程序的应用配置。这篇博客就介绍下如何将Jersey和Spring Boot结合起来使用。原创 2014-06-21 17:49:22 · 11137 阅读 · 1 评论 -
java8中的map和reduce
java8中最受人期待的就是lambda,引入了map和reduce。map和reduce原创 2014-06-19 19:14:45 · 46551 阅读 · 6 评论 -
Embedded Server:像写main函数一样写Web Server
1.传统的JEE Web Server 传统的JEE中,如果我们想要部署一个Web Application,我们需要首先安装一个Container Server,如JBoss,WebLogic,Tomcat等。在安装这些Container Server作为我们的开发或者部署环境时,我们还需要注意配置的一致性。 配置好Container Server以后,如果我们想开发一个Web App原创 2013-12-08 21:20:11 · 6366 阅读 · 1 评论 -
使用spring jdbc的batchUpdate功能提高性能
在spring batch中,我们经常使用spring提供的jdbcTemplate进行数据库操作。假设有一张表People.我们需要插入多条数据。处理的方法有两种:第一种方法是对每一个数据,都执行一直insert命令:jdbcTemplate.update(INSERT_PEOPLE_QUERY, people.getFirstName(), people.getLa原创 2013-10-15 14:31:41 · 36419 阅读 · 4 评论 -
使用Spring中Transcation进行数据库集成测试
数据库是程序中几乎必不可少的一部分,那么如何对于数据库进行测试呢?如果多个测试同时使用同一个数据库,我们怎么能够保证不同测试之间的测试数据不会相互影响呢?这里我们可以使用事务(transaction)进行数据库的测试。直接上代码:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations原创 2013-10-15 22:26:16 · 2452 阅读 · 0 评论 -
把长方形的构造函数写的文艺点儿
如何用更文艺的方式实现一个长方形的构造函数呢?本文用了三种方式来实现,看看不费电原创 2013-07-22 18:07:41 · 1280 阅读 · 0 评论 -
读源码练内功(一):guava之eventbus
从guava中eventbus中学习如何进行annotation编程原创 2013-07-16 23:14:55 · 9810 阅读 · 0 评论 -
Java中编写可变长参数的函数
越来越多的Java库使用了可变长参数,不再需要加一个new Object[]那么别扭。那么如何自己实现一个这样的可变长函数呢?我们就以实现一个一长串的整数相加作为例子:变长参数传到函数以后,其实就是一个数组,像数组那样操作就行了。例子:public class KMath { public static int add(int... args) {原创 2013-07-15 18:00:45 · 4457 阅读 · 0 评论 -
QuickSort(Java)
实现代码:public class QuickSort { public void sort(int[] input) { quickSort(input, 0, input.length - 1); } private void quickSort(int[] input, int begin, int end) { if (begi原创 2012-09-20 08:17:55 · 3570 阅读 · 0 评论 -
Dropwizard:用Java轻轻的写一个RESTful Service
在我的上一篇博客《 Embedded Server:像写main函数一样写Web Server》中,提到了使用Jetty Embedded Server进行Java Web Server的开发比传统的Web Container的方式进行开发的优势。如果直接使用Jetty提供的API进行Web Server的开发,特别是RESTful service的开发,难免看起来还是简单粗暴了一些。原创 2013-12-10 14:22:58 · 18805 阅读 · 2 评论 -
IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题
程序员的工作不是写程序,而是写程序解决问题。做到心中无码,才更容易专注于解决问题。原创 2013-12-04 11:20:36 · 19609 阅读 · 3 评论 -
Spring Transaction属性之Isolation
上一篇博客《Spring Transaction属性之Propagation》讲解了Propagation相关的知识,这篇博客主要关注于Isolation这个属性。一、Isolation基础请先移步Wikipedia:isolation.Isolation Level VS Phenomena上图来自wikipeida。注意:Isolation Level仅仅会原创 2014-03-04 19:40:10 · 27770 阅读 · 1 评论 -
Spring Transaction属性之Propagation
我们平常使用spring transaction时,我们大多都习惯于使用@Transactional,对于这个annotation可以有些什么配置,在什么情况下使用了解比较少。这篇博客主要关注于@Transactional中4个属性之一 -- propagation。Propagation取值:REQUIRED(默认值):在有transaction状态下执行;如当前没有transa原创 2014-03-01 15:04:04 · 79181 阅读 · 12 评论 -
白天不懂夜的黑--java中时区的问题
今天早上,项目站会,在澳大利亚的客户说,我们应该在提交代码之前在本地跑测试。我心里觉得委屈啊,我提交代码的时候的确都是跑了测试的啊。多争无益,于是,我又去看看代码到底是不是有什么问题。在我的DA(Desktop Anywhere)中,我使用和CI上相同的命令又跑了一次,还是OK的。在这里被卡住了一下,于是找澳大利亚的客户帮忙看看是不是CI上的配置发生了变化。客户说CI是原创 2014-02-13 20:23:50 · 1651 阅读 · 0 评论 -
IntelliJ中使用Drop Frame进行调试
我们在写程序时,时不时还是需要debug,以前debug的时候有时候手一抖,就容易跳过断点之类的。然后就只有窝火重来。前天和同事pair的时候,学习到了使用Drop Frame的方式进行调试,下面就简单演示一下。启动调试后,在IntelliJ左下角有一个Debugger的框框:现在程序执行到throwException这个方法。右键,选Drop Frame。相当原创 2014-01-26 22:00:44 · 21387 阅读 · 0 评论 -
真心不想再神戳戳的用Guava写FP了
很多人认为我们应该用Guava在Java中实现Functional Programming。但是我以为,这就好比逼着四川人说普通话一样的。。。“整啥子函数式编程嘛,吃多求了,写出来弯儿隔揪的,弄都弄不称头,应是装疯迷窍的”。。。原创 2014-01-14 21:29:41 · 1803 阅读 · 0 评论