读红薯老大的oschina代码

今天花了一下午,读乐红薯老大大部分的代码,收获慢多。

1.基于缓存的数据管理(总体使用EhCache管理,抛弃hibernate,使用DBUtil,使用ActiveRecord模式,实体模型非ORM型直使用外键),缓存的使用之处如下:

CacheManager管理缓存,封装EhCache,对每个对象分区管理缓存,设置缓存的大小,周期

QueryHelper的数据库操作中,每个方法都有支持缓存的版本,查询先从缓存查询,如果不存在再查询数据库,放入缓存。

POJO基类提供乐ActiveRecord的方式表达域模型,提供了数据存取方法,所有的取方法先从缓存获取,没有通过QueryHelper获取.

Velocity中自定义指定来对页面片段进行缓存。

2.自定义的Web层架构

使用一个RequestContext来表示请求上下文,提供大部分一次请求处理要用到的代码

使用一个过滤器过滤请求,创建RequestContext,如果有上传同时对上传进行处理

将请求提交给一个自定义的ActionServlet进行处理,ActionServlet调用Action,传递参数

使用POJO单例Action来处理请求,使用注解来进行URL配置

3.使用ThreadLocal来存储一个线程中需要共享的Connection,RequestContext等资源.

4.使用动态代理对Connection进行代理,对createStatement,preparedStatement进行代理,可打印sql语句

5.使用Lucene对系统数据建立索引,该程序是单独的程序,使用定时任务执行

6.使用Storage,FileStorage,MultiMedia对多媒体,文件操作等进行管理

还有.......,待续

 

 

你可能感兴趣的:(架构,高性能,oschina)