- 博客(511)
- 资源 (46)
- 收藏
- 关注
原创 Java zip/gzip文件压缩和解压缩
Java IOJAVA IO 支持的三种压缩格式:zip、gzip、jar。压缩文件@Testpublic void testZip() throws IOException { File zipFile = new File("D:\\log.zip"); //压缩后的文件 ZipOutputStream zipOut = null; try{ zipOut
2016-11-01 16:30:32 5498
原创 Objenesis 快速入门教程
Objenesis是一个轻量级的Java库,作用是绕过构造器创建一个实例。 Objenesis is a small Java library that serves one purpose: To instantiate a new object of a particular class.Java已经支持通过Class.newInstance()动态实例化Java类,但是这需要J
2016-10-29 15:32:50 6726
原创 maven分环境打包方案
前言目前大多数互联网公司内部将开发环境分为 日常、预发布与线上三套环境,不同环境之间的服务配置项需要做到隔离。例如,数据库连接配置,Zookeeper地址、其他系统url 等等。 本文着重介绍的就是如何通过 Maven 来管理不同环境的配置文件,通过profile来实现分环境打包。正文以web开发为例,大部分web开发项目整体结构如下图: 目录 描述 resources 存放公
2016-10-25 19:34:26 5832
原创 Maven deploy跳过某个module解决办法
I don’t want to deploy one of the artifacts in my multi-module build. Can I skip deployment?<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <vers
2016-10-25 11:55:21 29609 2
原创 理解RESTful架构
什么是REST 具象状态传输(英文:Representational State Transfer,简称REST)是Roy Thomas Fielding博士于2000年在他的博士论文 “Architectural Styles and the Design of Network-based Software Architectures” 中提出来的一种万维网软件架构风格。这是Wiki上关于R
2016-10-25 11:32:18 831
转载 Java工程师成神之路
转自:http://www.hollischuang.com/archives/489一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133http://ifeve.com/jmm-faq/1.1.2. 了解JVM各种参数及调优1.1.3. 学习使用Java工具jps, jst
2016-10-24 13:36:59 1354
原创 后端开发书单
操作系统与网络《深入理解计算机系统(原书第2版)》 《Linux内核设计与实现 第3版》 《TCP/IP详解 卷1:协议》算法《算法导论》 《数据结构与算法分析-Java语言描述 第3版》 《数学之美》 《编程珠玑》Java语言基础《Java核心技术(卷1):基础知识(第9版)》 《Thinking in Java》 《Effective Java》并发编程《Java并发编程实战》Sp
2016-10-20 13:59:02 3957
原创 Spring 动态数据源路由(Dynamic DataSource Routing)
Spring Dynamic DataSource Routing参考: https://spring.io/blog/2007/01/23/dynamic-datasource-routing/
2016-10-18 18:34:24 21297 4
原创 微服务架构(MSA)
什么是微服务架构从业界的讨论来看,微服务本身并没有一个严格的定义。不过,ThoughtWorks的首席科学家(Martin Flowler)的描述更加通俗易懂: 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个
2016-09-24 23:51:27 5032 1
原创 MyBatis 3.3.1 批量插入多行回写自增id
MyBatis 3.3.1支持批量插入多行回写自增id的功能,具体介绍请参看Support insert multiple rows and write-back id #547。实现原理其实现原理就是一条SQL语句:INSERT INTO tablename (column-a, [column-b, ...])VALUES ('value-1a', ['value-1b', ...]),('
2016-09-01 23:19:02 20688 8
原创 Git教程-分支和tag管理
创建分支删除远程分支和tag方法一:删除远程分支: $ git push origin –delete 删除tag这么用: git push origin –delete tag 方法二:可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支: git push origin : 这是删除tag的方法,推送一个空tag到远程tag: git tag -d git pu
2016-08-27 17:47:45 22676 1
原创 AsyncHttpClient Best Practice
AsyncHttpClient是一款开源的Java异步Http和WebSocket 客户端官方原文 Asynchronous Http and WebSocket Client library for Java Async Http Client library purpose is to allow Java applications to easily execute HTTP req
2016-08-27 12:33:15 2679
原创 OkHttp 3.x Best Practice
OkHttp 是square开源的一款优秀HTTP+HTTP/2客户端,它适用于Android和Java平台。官方介绍: An HTTP+HTTP/2 client for Android and Java applications. http://square.github.io/okhttp/API示例1、get请求OkHttpClient client = new OkHttpClien
2016-08-27 11:13:09 2118
原创 Spring JdbcTemplate 辅助类
Spring JdbcTemplate 对原生的JDBC API进行了包装,让程序员更专注于业务逻辑编码,例如查询数据库操作:public User queryUserById(long id) { return jdbcTemplate.queryForObject("SELECT * FROM tb_employee WHERE id=?", new Object[]{id}, n
2016-08-27 11:01:47 1213
原创 Dubbo Failed to save registry store file, cause: Can not lock the registry cache file
启动的Dubbo 服务的时候报错,异常信息如下:2016-08-22 16:44:40.588 | DubboSaveRegistryCache-thread-1 | WARN | com.alibaba.dubbo.common.logger.log4j.Log4jLogger:Log4jLogger.java(78) | [DUBBO] Failed to save registry sto
2016-08-22 18:04:24 34712 5
原创 HttpClient 4.5 Best Practice
最近在封装http请求相关的library,希望接口的行为和实现分离,这样底层library再切换不同http请求实现 例如:Apache HttpClient、OkHttp、AsyncHttpClient 等不影响上层调用行为。介绍HttpClient 4.5 Tutorial主要分为:基础(Fundamentals)、连接管理(Connection management)、http状态管理(HT
2016-08-22 00:05:03 3217
原创 Tomcat 启动JVM参数配置
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可
2016-08-18 18:37:32 24415
原创 Google Guava ListenableFuture入门
ListenableFuture是Google开源的Java Library Guava中的一个并发编程辅助类,它本身是继承是Java的Future。严格来讲,Future是一种Design Pattern, 它本身跟语言是没有关系的。
2016-08-17 00:06:24 1115
原创 MyBatis if test 字符串判断问题
<if test="status!= null and status=='OK'"> result = #{result ,jdbcType=VARCHAR}</if>MyBatis是使用的OGNL表达式来进行解析的,改成<if test='status!= null and status== "OK" '> result = #{result ,jdbcType=VARCHAR}</i
2016-08-11 11:27:32 23719 2
原创 Java ScheduledExecutorService教程
参考资料https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html
2016-08-11 10:26:26 2964
原创 SpringMVC 异常处理
参考资料: Exception Handling in Spring MVC:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
2016-08-03 11:03:03 586
原创 SpringMVC实战(五)-处理POST提交JSON数据
1、表单提交2、JSON串客户端请求 String url = "http://localhost:8080/order/create"; String data = "{\"id\":3, \"category\":\"IT数码\"}"; try { String result = HttpUtils.post(url, da
2016-07-26 10:52:53 25970
原创 解决IntelliJ IDEA 创建Maven项目速度慢问题
IntelliJ IDEA 15创建maven项目速度很慢,甚至卡住不动了。方法一在创建Maven项目时加上 archetypeCatalog=internal 参数,如下: 方法二在maven的VM Options加上-DarchetypeCatalog=internal参数,如下:
2016-07-21 14:14:11 36244
原创 使用Jersey+Spring+Tomcat构建RESTful Web服务
RESTful Web 服务REST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。 REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。RESTful Web 服务是使用 HTT
2016-07-20 22:27:27 8035
原创 使用Spring JDBCTemplate简化JDBC操作
Spring JDBCTemplate是一款轻量级ORM框架,使用它替换原生的JDBC操作数据库会轻松许多。本文将将介绍Spring中关于JDBC的一个辅助类(JDBCTemplate),它封装了JDBC的操作,使用起来非常方便。maven依赖<properties> <spring.version>4.2.4.RELEASE</spring.version> <aspectj.ve
2016-07-19 17:20:37 5760
原创 IntelliJ IDEA 15 常用设置
前言IntelliJ IDEA 主要用于支持 Java、Scala、Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 应用的开发。 IntelliJ IDEA 最重要的特性就是人性化、智能,在最近的使用中深有体会。 本文主要介绍一些IntelliJ IDEA安装后的常用配置,供大家参考!激活在线免费生成IntelliJ IDEA 15.0注册码
2016-07-18 22:39:47 3675
原创 Java ServiceLoader源码分析
在上一篇文章:Java SPI(Service Provider Interface)简介 中对Java SPI机制做了简单说明,并附上了一个具体的demo。对Java SPI不熟悉的同学可以去参阅一下那篇文章,本文不再赘述。本文将在上一篇文章的基础之上,结合JDK 1.7 源码来剖析Java SPI的内部实现原理。在上一篇文章中,我们通过如下代码获取Service的具体实现,代码如下:impor
2016-07-18 21:39:57 1202
原创 Dubbo实战(三)多注册中心配置
1、多注册中心注册比如:中文站有些服务来不及在青岛部署,只在杭州部署,而青岛的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。
2016-07-17 23:52:15 20269 1
原创 Java SPI(Service Provider Interface)简介
SPI 简介SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。一个服务(Service)通常指的是已知的接口或者抽象类,服务提供方就是对这个接口或者抽象类的实现,然后按照SPI 标准存放到资源路径META-INF/services目录下,文件的命名为该服务接口的全限定名。如有一个服务接口:package com.ricky.codelab
2016-07-17 21:15:13 15432 3
原创 Spring MVC 实现RESTful 返回JSON格式数据
在Java后端的日常开发中,系统间调用通过使用json格式数据,本文将向你展示如何将对象转换成json格式并通过Spring MVC框架返回给调用者。开发工具配置Spring 4.2.7.RELEASEJackson 2.6.7JDK 1.7IntelliJ IDEA 15Maven 3.3.91、maven依赖<project xmlns="http://maven.apache.or
2016-07-17 16:23:55 15140 1
原创 Github 创建新分支
clone Repositoryclone Github 上的Repository,如下:git clone git@github.com:FBing/design-patterns.git创建分支1、查看本地分支 使用 git branch命令,如下:$ git branch* master2、在本地创建新的分支,命令如下:git branch [branch name]例如:git bra
2016-07-17 13:13:03 96144 3
Android仿QQ消息列表ListView滑动删除效果
2014-02-11
Android SlidingMenu仿网易新闻布局
2013-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人