于吉吉的技术博客

建造高性能门户网

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  65 随笔 :: 6 文章 :: 149 评论 :: 0 Trackbacks

spring

     摘要: 前段时间我们的系统接到新增多一个频道的需求,原本我们的系统只是针对于广州的业务,现在需要新增另一个城市上海,经过和产品人员沟通和分析,城市之间的业务逻辑除了一些小差异基本还是一样的,数据库的结构经过整合两个城市也可以达到一样的结构,但上海需要独立出另一个数据库.

我们以前发布器的做法是用作为方法的一个参数由调用者一直传到访问对象(索引或数据库),虽然这种做法一样可以很快的实现,但是将数据库,索引的选择和业务逻辑混搭在一起的设计在感觉上是比较混乱,并且不利于将来多个城市(频道)的建立,所以选了通过ThreadLocal来实现多数据源的动态切换.

ThreadLocal 是一个依赖于执行线程的存储器,对它就只有简单的一个set和get方法,不同线程之间是相互独立的。简单地讲,就是:这个线程set了一个对象入去,只有这个线程自己可以把它get出来,其它线程是get不出来的。

好了,下面是具体显示的方式

首先定义一个filter,通过filter取得域名,因为我们的域名中带有城市的标志,如广州是http://gz.***.  阅读全文
posted @ 2010-08-23 16:22 陈于喆 阅读(3448) | 评论 (1)  编辑

     摘要: 由于系统需求需要对各个接口进行key-value缓存(以参数为key,返回的对象为value),当然对于这种情况首先考虑到的是使用aop,前段时间看过 aspectj的一些介绍,借此机会正好加以应用和体会一下,aspectj是AOP最早成熟的java实现,它稍微扩展了一下java语言,增加了一些 keyword等,具体的aspectj的基本语法见[ur=http://today.java.net/pub/a/today/2003/12 /26/ch3AspectJSyntaxBasics.html]这里[/url],进行缓存的框架使用较成熟的ehcache.
下面开始进行配置
首先是ehcache的配置文件




  阅读全文
posted @ 2010-08-23 10:35 陈于喆 阅读(8508) | 评论 (0)  编辑