badqiu

XPer
随笔 - 46, 文章 - 3, 评论 - 195, 引用 - 0
数据加载中……

置顶随笔

[置顶]rapid-framework v3.9新版本发布

     摘要: 本次新版本发布最主要的更新内容是生成器的加强,并且之前已经发布了rapid-generator独立版.
此次升级保证模板的兼容性.后续rapid-framework的发行版将不直接提供rapid-generator的源码在项目中,以便以后大家编写的模板都可以在一个生成器引擎中运行.   阅读全文

posted @ 2010-07-21 22:41 badqiu 阅读(2057) | 评论 (1)编辑 收藏

[置顶]rapid-framework发布新版本: v3.5

     摘要:
新增插件:
flex_cairngorm: 基于cairngorm mvc的flex插件,代码生成器生成的在线demo
freemarker_html_view: 基于freemarker的html视图,用于不喜欢jsp的同学使用

v3.5更新内容:
扩展jsp,freemarker,velocity的模板可以相互继承,打造替换sitemesh,struts tiles的布局框架.
freemarker,velocity实现管道操作来进行布局
新增分页方言: SQLServer2005Dialect
spring事务配置采用@Transactional替换xml配置
jdbc增加了sql生成工具,用于进一步封装spring jdbc操作
  阅读全文

posted @ 2010-03-24 19:39 badqiu 阅读(1876) | 评论 (1)编辑 收藏

2014年2月11日

工作中为什么不想听分享及不想分享?

一、为啥不去听别人分享?

1、觉得对现有工作无关

2、工作任务重,没空

3、没目的,随大流

4、觉得别人一次讲太多,记不住

5、任务性分享,不感兴趣

 

二、为啥自己不主动分享?

1、觉得内容少,不想分享

2、无主题,主题窄

3、压力大,硬凑PPT    

4、工作任务压着,没空想分享

5、目的性太强,没想其他东西

 

三、主动分享或听分享的好处?

1、扩大个人影响力

2、锻炼自己的总结能力

3、巩固自己对某一方面东西的认识

4、迫使自己学点东西

5、培养自己考虑问题的全面性

6、学习演讲技巧

posted @ 2014-02-11 15:47 badqiu 阅读(1725) | 评论 (6)编辑 收藏

2012年12月14日

mysql map_get function,用于解析map结构数据,根据key返回相对应value

     摘要: 1.目的

mysql的列是固定的,不支持存储如Map 结构的数据,但现在我们的需求是希望有一个 ext Map的扩展列,可以存储Map结构的数据,并且可以在mysql里面进行运算.(即schema free)。所以解决方案是创建一个map_get()函数,可以根据key得到对应的value  阅读全文

posted @ 2012-12-14 10:50 badqiu 阅读(1513) | 评论 (0)编辑 收藏

2011年12月12日

hadoop 集群升级失败记录

     摘要: 因为需要使用hadoop与hbase结合使用,所以需要为hadoop hdfs升级使用append写模式。需要对现有的hadoop 0.20.1 升级至0.20.205.0; 升级过程简单的使用 hadoop namenode -upgrade 从 -18 version => -32version(这个是dfs/name/current/VERSION).但我们发现0.20.205跟hive不兼容,所以又安装facebook的hadoop版本(-30版本)。

整个升级流程简单来说就是: dfs/name/current/VERSION -18 => -32 => -30. 升级再回滚的过程。
  阅读全文

posted @ 2011-12-12 20:30 badqiu 阅读(2481) | 评论 (2)编辑 收藏

2011年1月4日

分布式应用上下文(Distributed ThreadLocal)

     摘要: 单机应用内,在进程内部,我们可以使用ThreadLocal传递应用上下文的方式. 当前的 Spring Secrucity , Spring TransactionManager, Log4J MDC, Struts2 ActionContext等等应用场景随处可见.
但在是分布式系统下,由于不是在同一个进程内,所以无法使用ThreadLocal. 那么什么是分布式ThreadLocal呢?就是将一个系统中的ThreadLocal信息可以传递至下一个系统,将两者的调用可以关联起来。如对应用有一个调用,我们生成一个请求ID (traceId),在后面所有分布式系统调用中,可以通过这个traceId将所有调用关联起来,这样查找调用日志都将十分方便.  阅读全文

posted @ 2011-01-04 19:56 badqiu 阅读(1934) | 评论 (3)编辑 收藏

2010年10月11日

接口滥用问题

     摘要: 我们知道,大家提倡面向接口编程,但凡事都有个度,当滥用,那么面向接口完全流于形式。  阅读全文

posted @ 2010-10-11 17:33 badqiu 阅读(1970) | 评论 (2)编辑 收藏

2010年8月20日

log4jdbc日志框架介绍

     摘要: 现大家使用的ibatis,hibernate,spring jdbc的sql日志信息,有一点个缺点是占位符与参数是分开打印的,如果想要拷贝sql至PLSQL Developer客户端直接执行,需要自己拼凑sql。而log4jdbc是在jdbc层的一个日志框架,可以将占位符与参数全部合并在一起显示,方便直接拷贝sql在PLSQL Developer等客户端直接执行,加快调试速度。  阅读全文

posted @ 2010-08-20 14:07 badqiu 阅读(4717) | 评论 (8)编辑 收藏

2010年7月21日

rapid-framework v3.9新版本发布

     摘要: 本次新版本发布最主要的更新内容是生成器的加强,并且之前已经发布了rapid-generator独立版.
此次升级保证模板的兼容性.后续rapid-framework的发行版将不直接提供rapid-generator的源码在项目中,以便以后大家编写的模板都可以在一个生成器引擎中运行.   阅读全文

posted @ 2010-07-21 22:41 badqiu 阅读(2057) | 评论 (1)编辑 收藏

2010年6月22日

Holder模式

(本方法属于作者经验总结出该模式)

Holder模式的主要功能是将一些Bean可以转为静态方法调用.方便使用.

适用于一些系统只存在单例(singleton)并且 十分常用 的基础服务对象.这些基础服务如果每次使用spring注入,只会增加无谓的代码及一些不确定性.

示例如下:

BeanValidatorHolder.validate(bean) // HibernateValidator一般系统只有一个
CacheHolder.get("key") //如Memcached,应用系统也只有一个对象
ApplicationContextHolder.getBean("userInfoService");

与singleton相比特点

  • 一个Holder只能持有一个对象
  • Holder一般是持有接口,所以你可以方便的改变实现
  • 配合spring完成Holder初始化

示例1.CacheHolder?

用于持有Cache对象

1.1在spring中初始化

<bean class="cn.org.rapid_framework.util.holder.CacheHolder">
    <property name="cache" ref="memcacheCacheImpl"/>
</bean>

1.2使用 CacheHolder?使用

CacheHolder.add("key","cache_value","1h");
//do something

1.3实现

public class CacheHolder implements InitializingBean{
    private static Cache cache;
   
public void afterPropertiesSet() throws Exception {         if(cache == null) throw new IllegalStateException("not found 'cache' for CacheHolder ");     }             public void setCache(Cache c) {         if(cache != null) throw new IllegalStateException("CacheHolder already holded 'cache'");         cache = c;     }
   
public static Cache getCache(){         return cache;     }
//省略了其它N多cache静态方法    
public static void add(String key, Object value, String expiration) {         cache.add(key, value, parseDuration(expiration));     }
   
public static void cleanHolder() {         cache = null;     }        }

其它可以存在的Holder

holder 功能
BeanValidatorHolder 用于持有Hibernate Validator
SpringValidatorHolder 用于持有Spring Validator
ApplicationContextHolder 用于持有Spring ApplicationContext?
CacheHolder 用于持有Cache
MessagePublisherHodler 用于持有类似JMS消息中心的消息发送
MessageSourceHolder 持用MessageSource?,用于国际化
MailerHolder 用于邮件发送的Mailer
ConfigHolder 用于持有配置,需要动态刷新的参数使用,请查看文章保持类的无状态
SecurityManagerHolder 用于权限控制的SecurityManager

posted @ 2010-06-22 22:01 badqiu 阅读(2391) | 评论 (3)编辑 收藏

2010年6月13日

为velocity,freemarker提供jsp:include功能

     摘要: 使用JSP的都知道jsp:include指令,可以include其它jsp页面或者servlet。

而如果你不是使用JSP,而是使用模板引擎如Freemarker,Velocity。有该功能也将十分方便。  阅读全文

posted @ 2010-06-13 19:41 badqiu 阅读(3183) | 评论 (3)编辑 收藏

2010年5月25日

系统参数的动态刷新,只需一个原则:保持类的无状态

     摘要: 既然可以用如此简单的方法达到我们的目的,为何要搞出那么复杂的方案. (简单就是美)  阅读全文

posted @ 2010-05-25 00:43 badqiu 阅读(1885) | 评论 (5)编辑 收藏