自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (13)
  • 收藏
  • 关注

原创 Spring - service中调用内部的其他方法时如何保证事务

一、概述Spring事务的传播属性对开发者相当便利,但是Spring AOP使用wrap而非继承来实现代理,会使得同一个service中,方法A调用方法B时,无法保证方法B的事务传播属性。本文简单总结下有哪些方法可以解决这个问题:expose-proxy=true开启暴露Aop代理得到ThreadLocal支持使用spring + AspectJ直接使用bean注入使用Application

2017-01-11 11:01:06 1622

原创 由Spring的事务不支持静态方法所联想到的。。。

一、Spring的@Transactional不支持static方法正确的编程习惯可以帮你避免很多陷阱,让程序远离莫名的异常和崩溃,也让测试和运维变得轻松不少。好处虽多,但却有一个坏处,在于你可能对一些司空见惯的现象不容易生出一探究竟的欲望。有些讽刺的是,在开发过程中遇到的很多异常反而会提升你的技术实力。 正如使用Spring,特别是Spring MVC时,如果你知道正确的编程规范,那你是不会试图

2016-11-11 16:13:00 3711

原创 设计模式 - 2. Reactor VS Proactor (通过Web服务器的多种实现方案来比较Reactor与Proactor)

TODO一、概述对于并发应用,同步多线程是目前比较流行的机制。但是线程会消耗额外的资源,并且多线程编程需要对同步机制有很深的理解,因此目前越来越多的操作系统都提供了异步并发机制,保留了并发的好处,同时还消除了线程的资源损耗以及多线程编程的复杂性。 Proactor模式就是为了描述如何有效利用操作系统的异步机制,而被提出的一种异步并发模式。使用该模式,当应用执行调用异步操作时,由操作系统代表应用来执

2016-11-04 18:51:35 738

转载 分布式系统-1.保证分布式系统数据一致性的6种方案(转载自微博 @高可用架构 ,并做了部分修改)

原文链接: http://weibo.com/ttarticle/p/show?id=2309403965965003062676 修改原文时参考的链接: http://blog.jobbole.com/89140/ http://wenku.baidu.com/link?url=unqMlTJYbfnkOYSQkr17Mg9cA2jIxT7TTJEU6G4nIAi9Yg5OViUSoXdi

2016-11-04 16:47:51 1001

原创 JVM-1. 七个垃圾收集器的终极对比

一、截止JDK8,七个Garbage Collector的比较鉴于表格无法完整显示,贴一张图片以备参考: 图片如下: 原表格如下: 分代 No 名称 优点 缺点 开启参数 算法 使用场景 since version 备注 新生代 1 Serial 简单高效 stop the world -XX:+UseSerialGC 单线程、复

2016-10-23 13:36:15 2201

原创 JVM-1. 七个垃圾收集器的终极对比

垃圾收集器整理分代No名称优点缺点开启参数算法使用场景

2016-10-23 13:14:32 68

原创 RabbitMQ - RabbitMQ的确认机制 及 Java实现

RabbitMQ确认机制 (即Publisher Acknowledgements)使用标准的AMQP 0-9-1,保证消息不丢失的唯一方式即为使用事务 – 将channel设置为事务的,发布消息,然后提交。这种情况下,重量级的事务会将吞吐量降低到原来的1/250。使用确认机制即可拯救这种情形。 为开启确认,客户端需要发送confirm.select方法。取决于no-wait是否被设置,Broke

2016-10-20 11:32:40 3618

原创 集群环境中的Session管理

一、概述本文首先按照以下顺序讨论集群环境中Session管理的常见手段,然后使用一个实例来展示如何使用Spring Session快速实现集群间Session共享。使用cookie记录session Session sticky Session sticky + 文件或DB存储 Session replication 专门的Session服务器,如redis或memcached来存储s

2016-10-14 14:46:33 1627

原创 集群环境中的Session管理

一、概述本文首先按照以下顺序讨论集群环境中Session管理的常见手段,然后使用一个实例来展示如何使用Spring Session快速实现集群间Session共享。使用cookie记录session Session sticky Session sticky + 文件或DB存储 Session replication 专门的Session服务器,如redis或memcached来存储s

2016-10-14 14:45:27 92

原创 设计模式-1. SOLID法则以及其他面向对象的设计原则

一、概述 头文字 缩写 英文全称 中文全称 解释 S SRP Single responsibility principle 单一职责法则 一个类应该只有单一职责,也就是说,只允许有一个软件定义的改变影响到类 O OCP Open/close Principle 开/闭原则 软件实体应该对扩展开放,对修改关闭 L LSP Lisk

2016-10-12 09:30:18 505

原创 Spring 整理

一、Spring历次版本主要特性概览:spring1.0:2004年发布 spring2.0: 2006年发布,提供了XML命名空间和AspectJ支持 spring2.5: 2007年发布,支持注解驱动配置 spring3.0: 基于Java5,引入Java5+的很多功能和特性,例如基于Java的@Configuration配置 spring4.0: 支持Java8,最低支持Java6.二

2016-10-09 10:00:26 362

原创 Spring AOP - 注解实现统计service中方法的执行时间

一、概述Spring 2.0引入了更简单和更强大的方式来实现AOP——基于schema的方式和基于@AspectJ的方式。 本文介绍如何使用Spring AOP提供的@AspectJ注解注入切面,来统计service中方法的执行时间。二、AOP概念先简单介绍下AOP的主要概念和术语。Aspect: 切面,即横切多个类的关注点的组合。事务管理即为横切关注点的一个很好的示例。Sprint AOP中,

2016-09-08 09:43:37 2361

翻译 A Design Framework for Highly Concurrent Systems (待翻译)

本文翻译自加州大学伯克利分校的一篇论文:《A Design Framework for Highly Concurrent Systems》,原文链接如下: https://www.eecs.harvard.edu/~mdw/papers/events.pdf一、概要构建高并发系统,例如大规模的互联网服务,需要同时管理许多信息流,并且在需求超出资源可用性时维护峰值吞吐量。并且,任何支持互联网服务的

2016-08-15 18:36:51 887

原创 Spring MVC3 + Velocity设置favicon

一、概述Spring Boot提供了favicon的自动配置,只需将favicon.ico放置到resources目录下即可。使用Spring MVC等老代码,则需要在每个页面上手动配置。 本文介绍在使用Spring MVC3 + Velocity(JSP也适用)下,如何设置web应用的favicon。二、具体步骤1. 修改静态资源的handler mapping:在dispatcher-serv

2016-08-15 14:26:55 1075

翻译 Getting Started with the G1 Garbage Collector (待翻译)

http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html待翻译。一、Java和JVM1. Java Runtime Environment下载Java后会得到Java Runtime Environment(JRE)。JRE包括Java Virtual Machine(JVM),Java Platform核心类以及Java平

2016-08-11 00:52:40 551

原创 Spring Boot教程 - 6. 打包成可部署到外部servlet容器的war包

一、概述Sprint Boot默认将应用打包成可独立执行的jar包。虽然这样很方便微服务式的应用部署,但是如果你仍然想打包成旧式的war包,并部署到servlet容器,例如tomcat或者jetty中,Spring Boot也提供相应的支持。 本文简要介绍如何打包成war包。二、具体操作1. 继承SpringBootServletInitializer,并覆写configure方法这样就可以使用S

2016-08-05 10:31:27 3156

原创 CGlib与Java Proxy的动态代理

一、概述本文分别介绍如何使用CGLib和Java的Proxy类来实现动态代理功能。二、动态代理一般用途1. 数据库连接和事务管理例如Spring提供一个事务代理帮你创建/提交/回滚事务。此时的调用时序如下:web controller --> proxy.execute(...); proxy --> connection.setAutoCommit(false); proxy --> re

2016-08-02 18:42:45 585

原创 Spring Boot教程 - 5. Spring整合Mybatis,及配置多数据源

一、概述 本文介绍如何在Spring Boot中引入Mybatis,并自动配置数据源和sqlSession等内容。更进一步的讲解如果配置多数据源。二、自动配置Mybatis TODO三、手动配置多数据源 TODO

2016-07-29 18:03:18 694 2

原创 Tomcat - 1. 如何Rotate Tomcat catalina.out

一、概述在Unix上运行Tomcat时,控制台输出(console output)一般被重定向到catalina.out。所有写入到System.err/out的内容都将被写入这个文件。包括:java.lang.ThreadGroup.uncaughtException(..)打印的未捕获异常线程转储(如果是通过system信号触发的)在Context里面设置swallowOutput属性,可

2016-07-19 16:33:43 1010

原创 Spring Boot教程 - 4. 构建*nix/Windows上的可执行文件,做成service

如果不想直接部署jar包,而想打包成可执行文件并作为service部署。可以参考如下方法:1. Linux上(Centos测试无问题)修改pom文件的mvn插件,增加 <executable>true</executable>: <build> <plugins> <plugin> <groupId>org.sprin

2016-07-19 13:56:51 2577

原创 Spring Boot教程 - 3. 将配置文件放到jar外部

如果不想使用默认的application.properties,而想将属性文件放到jar包外面,可以使用如下两种方法: 只能设置全路径。因为java -jar运行jar包时,无法指定classpath(无论通过参数还是环境变量,设置的classpath都会被覆盖)。方法1:命令行传参指定spring.config.locationjava -jar -Dspring.config.locati

2016-07-19 13:44:21 8593

原创 Spring Boot示例 - 4. 使用Spring Boot和Spring Security构建安全的Web应用

一、概述 Spring Boot提供的自动配置和无XML化,使得构建安全的Web应用变得非常容易。本文将演示如何使用Spring Boot和Spring Security构建基于角色的访问控制(RBAC)。二、什么是RBAC,即基于角色的访问控制? Role Based Access Control,就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就

2016-07-15 18:14:41 6824 3

原创 Spring Boot示例 - 3. 使用spring-boot-devtools

一、概述spring-boot-devtools为应用提供一些开发时特性,包括默认值设置,自动重启,livereload等。本文将逐一介绍这些特性,并做演示。二、如何使用spring-boot-devtools在pom中,引入spring-boot-devtools即可:<dependencies><dependency><groupId>org.springframework.boot</gr

2016-07-15 16:22:02 9189 2

原创 Spring Boot教程 - 2. Spring Boot提供的特性

一、导览本文主要按以下模块介绍Spring Boot(1.3.6.RELEASE)提供的特性。 1. SpringApplication类 2. 外部化配置 3. Profiles 4. 日志 5. 开发WEB应用 6. Security 7. 使用SQL 8. 使用JOOQ 9. 使用NoSQL 10. 缓存 11. 消息 12. 测试 13. dev tools演

2016-07-14 13:44:37 5146

原创 Spring Boot示例 - 2. 使用Spring Boot + Spring Data REST + Spring Data JPA构建符合HATEOAS规范的REST应用

一、概述一般使用Spring MVC + Spring Data JPA即可构建REST服务,但是这种方式要完整实现Controller层,Service层和Repository层,需要编写很多样板代码,诸如注释,XML配置等。 使用Spring Data REST可以轻松构建超媒体驱动(hypermedia-driven)的REST服务。 Spring Data REST本身是个Spring

2016-07-13 18:39:59 8159 2

原创 Spring Boot教程 - 1. 简介

一、导览本文主要介绍以下几部分: 1. 什么是Spring Boot? 2. 为什么使用Spring Boot? 3. Spring Boot提供哪些功能? 4. 如何使用Spring Boot? 5. Spring Boot有哪些不足?二、什么是Spring Boot?Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以

2016-07-11 18:28:51 9439 1

原创 Spring Boot示例 - 1. 使用Spring Boot Actuator构建RESTful web service

一、概述Spring Boot Actuator是Spring Boot的子项目。使用它无需特别配置,即可为应用增加一些生产级别的服务。本教程展示使用Eclipse + Maven来从零开始构建一个RESTful的应用。 该应用作用是访问http://localhost:8080/fuck?name=xxx,会返回json字符串,并且访问http://localhost:8080/metrics

2016-07-11 14:53:17 4969 3

转载 Java中getResourceAsStream的用法

转自:http://www.cnblogs.com/javayuer/archive/2011/01/02/1924192.htmlJava中getResourceAsStream的用法首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此

2016-03-29 14:25:00 531

翻译 Apache Kafka 0.9.0 教程 中文版 1. Getting Started

原文地址:http://kafka.apache.org/documentation.html#introduction翻译自 刘岳峰1. Getting Started1.1 IntroductionKafka是一个分布式的,分区的,复制的提交log服务。它提供了一个消息系统的功能,但是具有独特的设计。这些都是什么意思呢?首先让我们回顾一些基本的消息术语:

2016-02-16 09:49:26 2425

翻译 RabbitMQ Tutorials - Java版-01-"Hello World!"实现

英文原文网址:http://www.rabbitmq.com/getstarted.html 翻译 by 刘岳峰 前提 本教程要求已安装RabbitMQ,并且运行在localhost的标准端口(5672)。如果您使用了不同的host,端口或者凭证,需要调整连接设置。简介RabbitMQ是一个消息代理。本质上, 它从生产者接受消息,并传送给消费者。在这两者之间, 它可以根据你给它的规则来路由

2016-02-15 18:09:41 496

分布式服务框架原理与实践

2016-10-25

Mastering concurrency programming with java 8 高清英文原版pdf

基于最新版java8,介绍如何精通java并发编程

2016-09-20

自己搭建的mvc开发示例

自己搭建的mvc框架,帮助理解的测试程序,使用了springmvc,mybatis + jquery+tiles+jsp

2016-03-17

我的mvc示例代码

自己搭建的mvc系统,使用springmvc mybatis

2016-03-17

我的项目源码

我的测试源码,供我自己使用,没有什么共享价值。

2016-02-29

我的项目文档

供我自己使用的项目文档

2016-02-29

数据结构与算法分析_Java语言描述中文第二版

数据结构与算法分析_Java语言描述。 数据结构与算法分析 C语言版被称作20世纪最经典的30本教材之一,这本是Java版,相当经典。

2013-03-07

某500强android学习资料

某500强android学习资料,缺少部分章节,依然很经典

2013-03-07

android launcher2的分析

android launcher2的简单分析,很有价值

2013-03-07

excel应用技巧集锦

写了一个月的CL了,感觉收获最多的居然是excel的使用,-_-! 发几个word文档,里面是经常用到的一些excel操作技巧。

2009-04-02

(Struts in Action)Stuts在行动 使用领先的Java框架构建Web应用

Ted Husted Cedric Dumoulin George Franciscus David Winterfeldt (著) Eric Liu (译) 分为八个章节,详细介绍了MVC和struts的原理。语言浅显直白,适合初学者看。

2009-04-02

java2的教程----来自中国IT认证实验室

非常完整的Java教程。包括 第一章: java语言入门 第二、三章: 数据类型和表达式 第四章:类对象和接口 第五章:数组和字符串 第六章:时间日期和数字 第七章:AWT工具集简介 第八章:javaApplet基础 ......(太多了,此处省略) 第二十四章:java与多媒体 第二十五张:javaswing基础 第二十六章:常见数据结构的java实现

2009-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除