首页>代码>Spring自定义ThreadLocal Scope实现类:ThreadScope>/spring-custom-scope-thread-scope-example/src/main/java/com/memorynotfound/spring/core/scope/ThreadScope.java
package com.memorynotfound.spring.core.scope; import org.springframework.beans.factory.ObjectFactory; import org.springframework.beans.factory.config.Scope; import org.springframework.core.NamedThreadLocal; import java.util.HashMap; import java.util.Map; public class ThreadScope implements Scope { private final ThreadLocal<Map<String, Object>> threadScope = new NamedThreadLocal<Map<String, Object>>(ThreadScope.class.getName()) { @Override protected Map<String, Object> initialValue() { return new HashMap<String, Object>(); } }; @Override public Object get(String name, ObjectFactory<?> objectFactory) { Map<String, Object> scope = this.threadScope.get(); Object object = scope.get(name); if (object == null) { object = objectFactory.getObject(); scope.put(name, object); } return object; } @Override public Object remove(String name) { Map<String, Object> scope = this.threadScope.get(); return scope.remove(name); } @Override public void registerDestructionCallback(String name, Runnable callback) { } @Override public Object resolveContextualObject(String key) { return null; } @Override public String getConversationId() { return Thread.currentThread().getName(); } public void clear(){ Map<String, Object> scope = this.threadScope.get(); scope.clear(); } }
最近下载更多
最近浏览更多
szf123 LV12
2023年5月30日
xiao菜 LV2
2021年6月2日
srl2881552 LV10
2021年5月20日
leon528616 LV2
2021年5月20日
3399509525 LV5
2021年4月14日
kayok LV19
2021年3月16日
8763804 LV2
2021年3月10日
crowd_lu
2021年2月28日
暂无贡献等级
wghai2
2021年2月27日
暂无贡献等级
xdd211414 LV17
2021年2月26日