本文整理汇总了Java中org.springframework.core.NamedThreadLocal类的典型用法代码示例。如果您正苦于以下问题:Java NamedThreadLocal类的具体用法?Java NamedThreadLocal怎么用?Java NamedThreadLocal使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
NamedThreadLocal类属于org.springframework.core包,在下文中一共展示了NamedThreadLocal类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: get
import org.springframework.core.NamedThreadLocal; //导入依赖的package包/类
@Override
public Object get(String name, ObjectFactory<?> objectFactory) {
try {
Object mutex = RequestContextHolder.currentRequestAttributes().getSessionMutex();
synchronized (mutex) {
return super.get(name, objectFactory);
}
} catch (IllegalStateException e) {
logger.debug("outside web session");
ThreadLocal<Object> objectHolder = objectHolders.get(name);
if (objectHolder == null) {
objectHolders.put(name, new NamedThreadLocal<>("wideScopeObjectHolder_" + name));
objectHolder = objectHolders.get(name);
}
if (objectHolder.get() == null) {
objectHolder.set(objectFactory.getObject());
}
return objectHolder.get();
}
}
示例2: test
import org.springframework.core.NamedThreadLocal; //导入依赖的package包/类
@Test
public void test(){
final ThreadLocal<Object> prototypesCurrentlyInCreation =
new NamedThreadLocal<Object>("Prototype beans currently in creation");
Assert.assertNull(prototypesCurrentlyInCreation.get());
prototypesCurrentlyInCreation.set("abc");
Assert.assertNotNull(prototypesCurrentlyInCreation.get());
prototypesCurrentlyInCreation.set(new HashSet<String>());
Assert.assertNotNull(prototypesCurrentlyInCreation.get());
prototypesCurrentlyInCreation.remove();
Assert.assertNull(prototypesCurrentlyInCreation.get());
System.out.println(prototypesCurrentlyInCreation.toString());
}