程序经常需要用到配置文件,但我们又并不想关心何时读取配置文件,于是写了如下代码,备忘:
/**
* 2007-4-28 下午03:24:37
*/
package kindsoft.auth.internal;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import kindsoft.auth.Configuration;
/**
* the top ContextHolder
* @author <a href="mailto:guileen@gmail.com">桂健雄</a>
* @since 2007-4-28
*/
public class ContextHolder {
private static final Configuration configuration;
static{
ApplicationContext context = new ClassPathXmlApplicationContext("security.xml");
configuration = (Configuration) context.getBean("configuration");
}
/**
* get the configuration
* @return the configuration
*/
public static Configuration getConfiguration() {
return configuration;
}
}
有时我们希望针对每个线程设置一个参数,比如在web程序中,我们使用session来保存信息,但每次必须获得session对象,才可以进行操作,于是有了如下代码,备忘:
/**
* 2007-4-28 下午05:20:05
*/
package kindsoft.auth.internal;
import java.util.HashMap;
import java.util.Map;
/**
* @author <a href="mailto:guileen@gmail.com">桂健雄</a>
* @since 2007-4-28
*/
public class ThreadHolder {
private static ThreadLocal<Map> localMap=new ThreadLocal<Map>(){
@Override
protected Map initialValue() {
return new HashMap();
}
};
@SuppressWarnings("unchecked")
public static void put(String key,Object value){
localMap.get().put(key, value);
}
public static Object get(String key){
return localMap.get().get(key);
}
}
分享到:
相关推荐
【Java之Holder技术详解】 Java中的Holder技术是一种用于在函数之间传递引用类型对象的方法,尤其在函数内部需要...在实际开发中,Holder模式常用于线程同步、回调函数以及需要跨函数边界传递和修改对象引用的场景。
Adapter是Android中的一个接口,通常与View Holder模式结合使用,以提高性能。在MyAdapterDemo中,我们可能看到它继承了BaseAdapter,这是一个基础的抽象类,已经实现了大部分Adapter的方法,如getCount()、getItem...
1. View Holder模式:这是ListView性能优化的关键。View Holder是一个内部类,用于存储每个列表项视图的子视图对象。通过复用ViewHolder,避免了每次绑定数据时寻找子视图的操作,大大提高了滚动时的性能。 2. ...
4. **View Holder模式**:为提高ListView的滚动性能,开发者可能会使用View Holder模式。这是一个简单的缓存机制,保存了列表项视图中的复杂控件引用,避免每次滚动时重复查找。 5. **ListView性能优化**: - ** ...
- 为了提高ListView的滚动性能,通常会使用View Holder模式。它缓存了ListView项中的每个View,避免频繁的findViewById操作,提高了性能。 3. **动画效果**: - 这个伸缩效果可能是通过Android的Animation类或者...
1.3 View Holder模式:为了提高ListView的性能,开发者通常会采用View Holder模式。该模式缓存了列表项中的视图,避免了频繁的findViewById()操作,提高渲染速度。 二、CheckBox集成 2.1 单选与多选:在ListView中...
3. **View Holder模式**:为了提高ListView的滚动性能,通常会使用View Holder模式来缓存视图对象。在`getView()`方法中,首先检查convertView是否为空,如果不为空则复用,否则创建新的视图并绑定数据。 4. **数据...
7. **性能优化**:由于Gallery会一次性加载多个视图,所以源码可能涉及到性能优化,比如使用View Holder模式减少视图的创建和复用,或者使用异步加载图片技术避免UI阻塞。 8. **兼容性问题**:由于Gallery是旧组件...
- 使用View Holder模式提高列表滚动流畅度。 4. **线程与并发** - 正确使用Handler、Looper和Message,避免主线程阻塞。 - 学习和使用AsyncTask、IntentService或Worker Thread处理后台任务。 - 了解Android的...
RecyclerView同样采用了View Holder模式,但它的优化更为深入,支持更复杂的布局管理器,如LinearLayoutManager、GridLayoutManager和StaggeredGridLayoutManager,使得布局方式更加多样。此外,RecyclerView提供了...
2. **View Holder模式**:为了提高ListView的滚动性能,通常会使用View Holder模式来缓存视图,避免频繁地创建和销毁视图对象。 3. **事件监听**:需要监听ListView的滚动事件,这通常通过`OnScrollListener`接口...
2. **View Holder模式**:为提高ListView的滚动性能,我们通常使用View Holder模式。这可以避免在滚动时频繁地创建和复用视图,提高UI渲染速度。 3. **Expandable TextView**:核心部分是实现一个可展开和折叠的...
为了优化性能,ListView和RecyclerView都采用了View Holder模式。通过缓存已经创建的视图,避免了频繁的视图创建和销毁。在自定义Adapter中,我们需要实现ViewHolder类并使用它来存储和重用列表项的视图。 5. **...
2. View Holder模式:为了提高性能,我们需要使用View Holder模式来缓存经常使用的视图组件,减少findViewById()的调用次数。 3. 数据结构:设计合适的数据模型以表示层级关系。可能是一个列表中包含其他列表的对象...
View Holder模式则能优化ListView中视图的重用,提高滚动性能。 时间轴(Timeline)的实现则更为复杂,通常需要自定义布局(Layout)和绘制(Draw)过程。在Android中,可以使用LinearLayout或RelativeLayout作为...
枚举模式public enum Singleton3 {Holder模式public class Singleton4 {* 类级内部类,也就是静态的成员内部类
视图holder模式则可以提高滚动性能,避免频繁的findViewById操作。 6. **Intent机制**:Android应用内部的跳转和通信主要依赖Intent。在这个源码中,开发者可能用Intent来启动新的活动或者传递数据。 7. **XML布局...
ListView的工作原理是基于视图复用,也就是View Holder模式。当用户滚动ListView时,已超出屏幕范围的视图会被回收并重新用来显示即将进入视野的新数据项。因此,如果EditText保存了之前某个位置的数据,当这个...
4. **View Holder模式**: - 为了提高ListView的性能,源码可能采用了ViewHolder设计模式。ViewHolder缓存了列表项布局中的子视图引用,避免了频繁的findViewById操作,提高了列表滚动时的流畅性。 5. **动画库**...
2. **View Holder模式**: 为了提高ListView的滚动性能和用户体验,通常会采用ViewHolder设计模式。ViewHolder类持有列表项中的各个组件引用,避免了每次绑定数据时都进行 findViewById() 操作,从而减少不必要的...