自定义Bean的Scope
本文简要实现了自定义的scope,使得每个线程都可以获得不同的实例对象
【1】自定义Scope
使用spring内置的线程类
org.springframework.context.support.SimpleThreadScope
public class SimpleThreadScope implements Scope {
private static final Log logger = LogFactory.getLog(SimpleThreadScope.class);
private final ThreadLocal<Map<String, Object>> threadScope = new NamedThreadLocal<Map<String, Object>>("SimpleThreadScope") {
protected Map<String, Object> initialValue() {
return new HashMap();
}
};
public SimpleThreadScope() {
}
【2】 将自定义的scope注册到容器中
<bean class="org.springframework.beans.factory.config.CustomScopeConfigurer">
<property name="scopes">
<map>
<entry key="NameOfScope">
<bean class="org.springframework.context.support.SimpleThreadScope"/>
</entry>
</map>
</property>
</bean>
【3】配置xml
<bean id="xxBean" class="com.lxy.spring.xxBean" scope="NameOfScope"></bean>
配置完成,测试运行结果