类org.springframework.core.NamedThreadLocal源码实例Demo

下面列出了怎么用org.springframework.core.NamedThreadLocal的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void defaultRequest() {
	ThreadLocal<String> context = new NamedThreadLocal<>("foo");

	Map<String, Object> actual = new HashMap<>();
	ExchangeFilterFunction filter = (request, next) -> {
		actual.putAll(request.attributes());
		return next.exchange(request);
	};

	WebClient client = this.builder
			.defaultRequest(spec -> spec.attribute("foo", context.get()))
			.filter(filter)
			.build();

	try {
		context.set("bar");
		client.get().uri("/path").attribute("foo", "bar")
				.exchange().block(Duration.ofSeconds(10));
	}
	finally {
		context.remove();
	}

	assertEquals("bar", actual.get("foo"));
}
 
@Test
public void defaultRequest() {
	ThreadLocal<String> context = new NamedThreadLocal<>("foo");

	Map<String, Object> actual = new HashMap<>();
	ExchangeFilterFunction filter = (request, next) -> {
		actual.putAll(request.attributes());
		return next.exchange(request);
	};

	WebClient client = this.builder
			.defaultRequest(spec -> spec.attribute("foo", context.get()))
			.filter(filter)
			.build();

	try {
		context.set("bar");
		client.get().uri("/path").attribute("foo", "bar").exchange();
	}
	finally {
		context.remove();
	}

	assertEquals("bar", actual.get("foo"));
}
 
 类所在包
 类方法
 同包方法