28、基于ThreadLocal实现分页
ThreadLocal的概念很重要。有时间多看看。
Pager list(condition,pagesize,pageIndex);
对商品,用户进行分布都要传参数pagesize,pageindex呀。而且如果要对分页的记录进行排序还要传参数呀。
threadlocal存储的值在这三层都是有效的。
把参数从界面层传递到下层不通过参数,就要通过Threadlocal来实现了。
public class SystemContext{
private static ThreadLocal<Integer>
pagesize=new ThreadLocal<Integer>();
private static ThreadLocal<Integer>
pageIndex=new ThreadLocal<Integer>();
为每一个ThreadLocal对象添加get,set,remove方
法。
}
如:
private static ThreadLocal<Integer> pageIndex=new ThreadLocal<Integer>();
private static ThreadLocal<Integer> pageSize=new ThreadLocal<Integer>();
public static void setPageIndex(int _pageIndex){
pageIndex.set(_pageIndex);
}
public static int getPageIndex(){
return pageIndex.get();
}
public static void removePageIndex(){
pageIndex.remove();
}
而对于参数的设置就可以通过过滤器来实现了。
过滤器
SystemContextFilter
try{
去的时候把参数设置好
}
finally{
回来的时候把参数remove掉。
}
我们可以做的更好,可以在web.xml中设置分页的
大小和页面。
好处的分页是不添加参数。这个模式是很重要的。
再对其它对象分页进也不需要更改了。
ThreadLocal是解决线程安全问题一个很好的思路
,它通过为每个线程提供一个独立的变量副本解决
了变量并发访问的冲突问题。在很多情况下,
ThreadLocal比直接使用synchronized同步机制解
决线程安全问题更简单,更方便,且结果程序拥有
更高的并发性。
ThreadLocal的概念很重要。有时间多看看。
Pager list(condition,pagesize,pageIndex);
对商品,用户进行分布都要传参数pagesize,pageindex呀。而且如果要对分页的记录进行排序还要传参数呀。
但是这些参数对我们的业务逻辑并没有太多的影响。
threadlocal存储的值在这三层都是有效的。
把参数从界面层传递到下层不通过参数,就要通过Threadlocal来实现了。
public class SystemContext{
private static ThreadLocal<Integer>
pagesize=new ThreadLocal<Integer>();
private static ThreadLocal<Integer>
pageIndex=new ThreadLocal<Integer>();
为每一个ThreadLocal对象添加get,set,remove方
法。
}
如:
private static ThreadLocal<Integer> pageIndex=new ThreadLocal<Integer>();
private static ThreadLocal<Integer> pageSize=new ThreadLocal<Integer>();
public static void setPageIndex(int _pageIndex){
pageIndex.set(_pageIndex);
}
public static int getPageIndex(){
return pageIndex.get();
}
public static void removePageIndex(){
pageIndex.remove();
}
而对于参数的设置就可以通过过滤器来实现了。
过滤器
SystemContextFilter
try{
去的时候把参数设置好
}
finally{
回来的时候把参数remove掉。
}
我们可以做的更好,可以在web.xml中设置分页的
大小和页面。
好处的分页是不添加参数。这个模式是很重要的。
再对其它对象分页进也不需要更改了。
ThreadLocal是解决线程安全问题一个很好的思路
,它通过为每个线程提供一个独立的变量副本解决
了变量并发访问的冲突问题。在很多情况下,
ThreadLocal比直接使用synchronized同步机制解
决线程安全问题更简单,更方便,且结果程序拥有
更高的并发性。