- 浏览: 92426 次
- 性别:
- 来自: 深圳
文章列表
开源项目springredis
- 博客分类:
- OPEN SOURCE
项目地址:
https://github.com/CarrowZhu/springredis
项目简介:
基于spring-data-redis的注解实现redis缓存操作
requirement
JDK6 Spring4
原理&实现
1)AOP2)实现参考自Spring的Cache注解区别:1)支持TTL 2)支持Hash
配置说明
XML配置文件
xsi:schemaLocation="http://www.siyuan.com/schema/springredis http://www.siyuan.com/sche ...
AsyncAppender,异步记录日志
工作原理:
当Logging Event进入AsyncAppender后,AsyncAppender会调用appender方法,append方法中在将event填入Buffer(这里选用的数据结构为BlockingQueue)中前,会先判断当前buffer的容量以及丢弃日志特性是否开启,当消费能力不如生产能力时,AsyncAppender会超出Buffer容量的Logging Event的级别,进行丢弃,作为消费速度一旦跟不上生产速度,中转buffer的溢出处理的一种方案。AsyncAppender有个线程类Worker,它是一个简单的线程类 ...
LOGBACK-slf4j MDC
- 博客分类:
- OPEN SOURCE
1)简介
MDC ( Mapped Diagnostic Contexts ),顾名思义,其目的是为了便于我们诊断线上问题而出现的方法工具类。虽然,Slf4j 是用来适配其他的日志具体实现包的,但是针对 MDC功能,目前只有logback 以及 log4j 支持。
logback中MDC的功能实现很简单,就是在线程上下文中,维护一个 Map<String,String> 属性来支持日志输出的时候,当我们在配置文件logback.xml 中配置了
mybatis 批量处理
- 博客分类:
- OPEN SOURCE
SqlSessionFactory在创建SqlSession实例时候可以设置ExecutorType,这个枚举类型定义了 3 个 值:
ExecutorType.SIMPLE: 这个执行器类型不做特殊的事情。它为每个语句的执行创建一个新的预处理语句。
ExecutorType.REUSE: 这个执行器类型会复用预处理语句。
ExecutorType.BATCH: 这个执行器会批量执行所有更新语句,如果 SELECT 在它们中间执行还会标定它们是 必须的,来保证一个简单并易于理解的行为。
可以在mybatis-config.xml中配置,默认为ExecutorType.SIMP ...
mybatis 插件
- 博客分类:
- OPEN SOURCE
1.简介
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
ParameterHandler (getParameterObject, setParameters)
ResultSetHandler (handleResultSets, handleOutputParameters)
StatementHandler ( ...
1.简介
rapid-generator是一个由JAVA编写的,通过数据库元数据和模板框架freemarker自动生成代码的一个开源框架。
2.实现
pom.xml
<dependency>
<groupId>com.googlecode.rapid-framework</groupId>
<artifactId>rapid-generator</artifactId>
<version>4.0.6</version>
</dependency>
...
Pushlet-Web后台推送系统
- 博客分类:
- OPEN SOURCE
1.简介
Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。表面上是服务器推,实现是还是客户端拉。
2.实现
2.1.发布Event
2.1.1.Local本地
--Dispatcher API
Dispatcher.getInstance().multicast()/unicast()/broadcast().
package com.siyuan.study.pushlet.event;
imp ...
http://siyuan-zhu.iteye.com/blog/2136309
jsoup简单封装
已经在GitHub中开源了,地址如下:
https://github.com/CarrowZhu/jsoup2bean
EhCacheResourceBundles
- 博客分类:
- Spring
1.简介
使用EhCache缓存资源,使用ResourcePatternResolver从多个文件中加载资源
2.源文件
1)EhCacheResourceBundles
package com.siyuan.test.spring;
import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import j ...
propeties配置文件
- 博客分类:
- Spring
1.PropertyPlaceholderConfigurer & <context:property-placeholder />
--单个PropertyPlaceholderConfigurer
ApplicationContext.xml
<context:property-placeholder
location="classpath:test.properties,classpath:test1.properties"/>
test.properties
student.id=1000
student.name= ...
解决方法一:
修改Jettry包中的org/mortbay/jetty/webapp/webdefault.xml文件
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
解决方法二:
配置jetty插件
<plugin>
<groupId>org.mortbay.jetty</groupId>
< ...
Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath加载文件,如bean的定义文件.classpath*:的出现是为了从多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件.
参考资料
http://blog.csdn.net/kkdelta/article/details/5507799
JXLS - EXCEL模板
- 博客分类:
- OPEN SOURCE
1.简介
JXLS是一个开源的EXCEL模板包,特点有:
1)支持XLS和XML配置
2)使用JEXL填充内容
3)解耦底层EXCEL操作库,支持Apache POI和Java EXCEL API
2.实例
1)Employee.java
package com.siyuan.study.jxls.entity;
import java.util.Date;
public class Employee {
private String name;
private Date birthday;
private double payment;
priva ...
1.安装GraphicsMagick
--使用yum安装GraphicsMagick
# yum install ImageMagick
--查看安装结果
# yum list installed | grep ImageMagick*
ImageMagick.x86_64 6.5.4.7-7.el6_5 @base
--验证安装结果
# convert -sample 200x200 desktop.jpg desktop-200x200.jpg
# convert -sample 200x200 desktop.png desktop-200x200.p ...
转载自 http://blog.sina.com.cn/openresty
紧跟在 post-access 阶段之后的是 try-files 阶段。这个阶段专门用于实现标准配置指令 try_files 的功能,并不支持 Nginx 模块注册处理程序。由于 try_files 指令在许多 FastCGI 应用的配置中都有用到,所以我们不妨在这里简单介绍一下。
try_files 指令接受两个以上任意数量的参数,每个参数都指定了一个 URI. 这里假设配置了 N 个参数,则 Nginx 会在 try-files 阶段,依次把前 N-1 个参数映射为文件系统上的对象(文件或 ...