类org.springframework.web.bind.support.WebBindingInitializer源码实例Demo

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

InitBinderBindingContext(@Nullable WebBindingInitializer initializer,
		List<SyncInvocableHandlerMethod> binderMethods) {

	super(initializer);
	this.binderMethods = binderMethods;
	this.binderMethodContext = new BindingContext(initializer);
}
 
@Test
public void requestMappingHandlerAdapter() throws Exception {
	ApplicationContext context = loadConfig(WebFluxConfig.class);

	String name = "requestMappingHandlerAdapter";
	RequestMappingHandlerAdapter adapter = context.getBean(name, RequestMappingHandlerAdapter.class);
	assertNotNull(adapter);

	List<HttpMessageReader<?>> readers = adapter.getMessageReaders();
	assertEquals(13, readers.size());

	ResolvableType multiValueMapType = forClassWithGenerics(MultiValueMap.class, String.class, String.class);

	assertHasMessageReader(readers, forClass(byte[].class), APPLICATION_OCTET_STREAM);
	assertHasMessageReader(readers, forClass(ByteBuffer.class), APPLICATION_OCTET_STREAM);
	assertHasMessageReader(readers, forClass(String.class), TEXT_PLAIN);
	assertHasMessageReader(readers, forClass(Resource.class), IMAGE_PNG);
	assertHasMessageReader(readers, forClass(Message.class), new MediaType("application", "x-protobuf"));
	assertHasMessageReader(readers, multiValueMapType, APPLICATION_FORM_URLENCODED);
	assertHasMessageReader(readers, forClass(TestBean.class), APPLICATION_XML);
	assertHasMessageReader(readers, forClass(TestBean.class), APPLICATION_JSON);
	assertHasMessageReader(readers, forClass(TestBean.class), new MediaType("application", "x-jackson-smile"));
	assertHasMessageReader(readers, forClass(TestBean.class), null);

	WebBindingInitializer bindingInitializer = adapter.getWebBindingInitializer();
	assertNotNull(bindingInitializer);
	WebExchangeDataBinder binder = new WebExchangeDataBinder(new Object());
	bindingInitializer.initBinder(binder);

	name = "webFluxConversionService";
	ConversionService service = context.getBean(name, ConversionService.class);
	assertSame(service, binder.getConversionService());

	name = "webFluxValidator";
	Validator validator = context.getBean(name, Validator.class);
	assertSame(validator, binder.getValidator());
}
 
private InitBinderBindingContext getBindingContext(Object controller) {
	List<SyncInvocableHandlerMethod> binderMethods =
			MethodIntrospector.selectMethods(controller.getClass(), BINDER_METHODS)
					.stream()
					.map(method -> new SyncInvocableHandlerMethod(controller, method))
					.collect(Collectors.toList());

	WebBindingInitializer bindingInitializer = new ConfigurableWebBindingInitializer();
	return new InitBinderBindingContext(bindingInitializer, binderMethods);
}
 
/**
 * Create a new InitBinderDataBinderFactory instance.
 * @param binderMethods {@code @InitBinder} methods
 * @param initializer for global data binder initialization
 */
public InitBinderDataBinderFactory(@Nullable List<InvocableHandlerMethod> binderMethods,
		@Nullable WebBindingInitializer initializer) {

	super(initializer);
	this.binderMethods = (binderMethods != null ? binderMethods : Collections.emptyList());
}
 
InitBinderBindingContext(@Nullable WebBindingInitializer initializer,
		List<SyncInvocableHandlerMethod> binderMethods) {

	super(initializer);
	this.binderMethods = binderMethods;
	this.binderMethodContext = new BindingContext(initializer);
}
 
@Test
public void requestMappingHandlerAdapter() throws Exception {
	ApplicationContext context = loadConfig(WebFluxConfig.class);

	String name = "requestMappingHandlerAdapter";
	RequestMappingHandlerAdapter adapter = context.getBean(name, RequestMappingHandlerAdapter.class);
	assertNotNull(adapter);

	List<HttpMessageReader<?>> readers = adapter.getMessageReaders();
	assertEquals(13, readers.size());

	ResolvableType multiValueMapType = forClassWithGenerics(MultiValueMap.class, String.class, String.class);

	assertHasMessageReader(readers, forClass(byte[].class), APPLICATION_OCTET_STREAM);
	assertHasMessageReader(readers, forClass(ByteBuffer.class), APPLICATION_OCTET_STREAM);
	assertHasMessageReader(readers, forClass(String.class), TEXT_PLAIN);
	assertHasMessageReader(readers, forClass(Resource.class), IMAGE_PNG);
	assertHasMessageReader(readers, forClass(Message.class), new MediaType("application", "x-protobuf"));
	assertHasMessageReader(readers, multiValueMapType, APPLICATION_FORM_URLENCODED);
	assertHasMessageReader(readers, forClass(TestBean.class), APPLICATION_XML);
	assertHasMessageReader(readers, forClass(TestBean.class), APPLICATION_JSON);
	assertHasMessageReader(readers, forClass(TestBean.class), new MediaType("application", "x-jackson-smile"));
	assertHasMessageReader(readers, forClass(TestBean.class), null);

	WebBindingInitializer bindingInitializer = adapter.getWebBindingInitializer();
	assertNotNull(bindingInitializer);
	WebExchangeDataBinder binder = new WebExchangeDataBinder(new Object());
	bindingInitializer.initBinder(binder);

	name = "webFluxConversionService";
	ConversionService service = context.getBean(name, ConversionService.class);
	assertSame(service, binder.getConversionService());

	name = "webFluxValidator";
	Validator validator = context.getBean(name, Validator.class);
	assertSame(validator, binder.getValidator());
}
 
private InitBinderBindingContext getBindingContext(Object controller) {

		List<SyncInvocableHandlerMethod> binderMethods =
				MethodIntrospector.selectMethods(controller.getClass(), BINDER_METHODS)
						.stream()
						.map(method -> new SyncInvocableHandlerMethod(controller, method))
						.collect(Collectors.toList());

		WebBindingInitializer bindingInitializer = new ConfigurableWebBindingInitializer();
		return new InitBinderBindingContext(bindingInitializer, binderMethods);
	}
 
/**
 * Create a new InitBinderDataBinderFactory instance.
 * @param binderMethods {@code @InitBinder} methods
 * @param initializer for global data binder initialization
 */
public InitBinderDataBinderFactory(@Nullable List<InvocableHandlerMethod> binderMethods,
		@Nullable WebBindingInitializer initializer) {

	super(initializer);
	this.binderMethods = (binderMethods != null ? binderMethods : Collections.emptyList());
}
 
源代码9 项目: lams   文件: HandlerMethodInvoker.java
public HandlerMethodInvoker(HandlerMethodResolver methodResolver, WebBindingInitializer bindingInitializer,
		SessionAttributeStore sessionAttributeStore, ParameterNameDiscoverer parameterNameDiscoverer,
		WebArgumentResolver[] customArgumentResolvers, HttpMessageConverter<?>[] messageConverters) {

	this.methodResolver = methodResolver;
	this.bindingInitializer = bindingInitializer;
	this.sessionAttributeStore = sessionAttributeStore;
	this.parameterNameDiscoverer = parameterNameDiscoverer;
	this.customArgumentResolvers = customArgumentResolvers;
	this.messageConverters = messageConverters;
}
 
public HandlerMethodInvoker(HandlerMethodResolver methodResolver, WebBindingInitializer bindingInitializer,
		SessionAttributeStore sessionAttributeStore, ParameterNameDiscoverer parameterNameDiscoverer,
		WebArgumentResolver[] customArgumentResolvers, HttpMessageConverter<?>[] messageConverters) {

	this.methodResolver = methodResolver;
	this.bindingInitializer = bindingInitializer;
	this.sessionAttributeStore = sessionAttributeStore;
	this.parameterNameDiscoverer = parameterNameDiscoverer;
	this.customArgumentResolvers = customArgumentResolvers;
	this.messageConverters = messageConverters;
}
 
/**
 * Return the configured WebBindingInitializer, or {@code null} if none.
 */
@Nullable
public WebBindingInitializer getWebBindingInitializer() {
	return this.webBindingInitializer;
}
 
/**
 * Create a new instance.
 * @param binderMethods one or more {@code @InitBinder} methods
 * @param initializer provides global data binder initialization
 */
public ServletRequestDataBinderFactory(@Nullable List<InvocableHandlerMethod> binderMethods,
		@Nullable WebBindingInitializer initializer) {

	super(binderMethods, initializer);
}
 
/**
 * Return the configured WebBindingInitializer, or {@code null} if none.
 */
@Nullable
public WebBindingInitializer getWebBindingInitializer() {
	return this.webBindingInitializer;
}
 
/**
 * Return the configured WebBindingInitializer, or {@code null} if none.
 */
@Nullable
public WebBindingInitializer getWebBindingInitializer() {
	return this.webBindingInitializer;
}
 
/**
 * Create a new instance.
 * @param binderMethods one or more {@code @InitBinder} methods
 * @param initializer provides global data binder initialization
 */
public ServletRequestDataBinderFactory(@Nullable List<InvocableHandlerMethod> binderMethods,
		@Nullable WebBindingInitializer initializer) {

	super(binderMethods, initializer);
}
 
/**
 * Return the configured WebBindingInitializer, or {@code null} if none.
 */
@Nullable
public WebBindingInitializer getWebBindingInitializer() {
	return this.webBindingInitializer;
}
 
源代码17 项目: lams   文件: RequestMappingHandlerAdapter.java
/**
 * Return the configured WebBindingInitializer, or {@code null} if none.
 */
public WebBindingInitializer getWebBindingInitializer() {
	return this.webBindingInitializer;
}
 
源代码18 项目: lams   文件: HandlerMethodInvoker.java
public HandlerMethodInvoker(HandlerMethodResolver methodResolver, WebBindingInitializer bindingInitializer) {
	this(methodResolver, bindingInitializer, new DefaultSessionAttributeStore(), null, null, null);
}
 
/**
 * Return the configured WebBindingInitializer, or {@code null} if none.
 */
public WebBindingInitializer getWebBindingInitializer() {
	return this.webBindingInitializer;
}
 
public HandlerMethodInvoker(HandlerMethodResolver methodResolver, WebBindingInitializer bindingInitializer) {
	this(methodResolver, bindingInitializer, new DefaultSessionAttributeStore(), null, null, null);
}
 
源代码21 项目: spring-analysis-note   文件: BindingContext.java
/**
 * Create a new {@code BindingContext} with the given initializer.
 * @param initializer the binding initializer to apply (may be {@code null})
 */
public BindingContext(@Nullable WebBindingInitializer initializer) {
	this.initializer = initializer;
}
 
/**
 * Provide a WebBindingInitializer with "global" initialization to apply
 * to every DataBinder instance.
 */
public void setWebBindingInitializer(@Nullable WebBindingInitializer webBindingInitializer) {
	this.webBindingInitializer = webBindingInitializer;
}
 
/**
 * Provide a WebBindingInitializer with "global" initialization to apply
 * to every DataBinder instance.
 */
public void setWebBindingInitializer(@Nullable WebBindingInitializer webBindingInitializer) {
	this.webBindingInitializer = webBindingInitializer;
}
 
源代码24 项目: java-technology-stack   文件: BindingContext.java
/**
 * Create a new {@code BindingContext} with the given initializer.
 * @param initializer the binding initializer to apply (may be {@code null})
 */
public BindingContext(@Nullable WebBindingInitializer initializer) {
	this.initializer = initializer;
}
 
/**
 * Provide a WebBindingInitializer with "global" initialization to apply
 * to every DataBinder instance.
 */
public void setWebBindingInitializer(@Nullable WebBindingInitializer webBindingInitializer) {
	this.webBindingInitializer = webBindingInitializer;
}
 
/**
 * Provide a WebBindingInitializer with "global" initialization to apply
 * to every DataBinder instance.
 */
public void setWebBindingInitializer(@Nullable WebBindingInitializer webBindingInitializer) {
	this.webBindingInitializer = webBindingInitializer;
}
 
源代码27 项目: lams   文件: AnnotationMethodHandlerAdapter.java
/**
 * Specify a WebBindingInitializer which will apply pre-configured
 * configuration to every DataBinder that this controller uses.
 */
public void setWebBindingInitializer(WebBindingInitializer webBindingInitializer) {
	this.webBindingInitializer = webBindingInitializer;
}
 
源代码28 项目: lams   文件: MultiActionController.java
/**
 * Specify a WebBindingInitializer which will apply pre-configured
 * configuration to every DataBinder that this controller uses.
 * <p>Allows for factoring out the entire binder configuration
 * to separate objects, as an alternative to {@link #initBinder}.
 */
public final void setWebBindingInitializer(WebBindingInitializer webBindingInitializer) {
	this.webBindingInitializer = webBindingInitializer;
}
 
源代码29 项目: lams   文件: MultiActionController.java
/**
 * Return the WebBindingInitializer (if any) which will apply pre-configured
 * configuration to every DataBinder that this controller uses.
 */
public final WebBindingInitializer getWebBindingInitializer() {
	return this.webBindingInitializer;
}
 
源代码30 项目: lams   文件: ServletRequestDataBinderFactory.java
/**
 * Create a new instance.
 * @param binderMethods one or more {@code @InitBinder} methods
 * @param initializer provides global data binder initialization
 */
public ServletRequestDataBinderFactory(List<InvocableHandlerMethod> binderMethods, WebBindingInitializer initializer) {
	super(binderMethods, initializer);
}