软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot添加自定义 * 的实现代码

SpringBoot添加自定义 * 的实现代码

作者:紫薇帝星的故事  发布时间:2023-11-26 13:30:54 

标签:spring,boot, ,

在Controller层时,往往会需要校验或验证某些操作,而在每个Controller写重复代码,工作量比较大,这里在Springboot项目中 ,通过继承WebMvcConfigurerAdapter,添加 * 。

1、WebMvcConfigurerAdapter源码


/*
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.web.servlet.config.annotation;
import java.util.List;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;
/**
* An implementation of {@link WebMvcConfigurer} with empty methods allowing
* subclasses to override only the methods they're interested in.
*
* @author Rossen Stoyanchev
* @since 3.1
*/
public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void configurePathMatch(PathMatchConfigurer configurer) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void addFormatters(FormatterRegistry registry) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void addInterceptors(InterceptorRegistry registry) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void addResourceHandlers(ResourceHandlerRegistry registry) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void addCorsMappings(CorsRegistry registry) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void addViewControllers(ViewControllerRegistry registry) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void configureViewResolvers(ViewResolverRegistry registry) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation is empty.
  */
 @Override
 public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
 }
 /**
  * {@inheritDoc}
  * <p>This implementation returns {@code null}.
  */
 @Override
 public Validator getValidator() {
   return null;
 }
 /**
  * {@inheritDoc}
  * <p>This implementation returns {@code null}.
  */
 @Override
 public MessageCodesResolver getMessageCodesResolver() {
   return null;
 }
}

可以看出,该类 还能配置其他很多操作,例如异常处理,跨域请求等配置。

2、自动义Web配置类


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
 @Override
 public void addInterceptors(InterceptorRegistry registry) {
   registry.addInterceptor(getMyInterceptor()).addPathPatterns("/**");
 }
 @Bean
 public MyInterceptor getMyInterceptor(){
   return new MyInterceptor();
 }
}

如果需要添加多个 * ,InterceptorRegistry registry.addInterceptor方法


public InterceptorRegistration addInterceptor(HandlerInterceptor interceptor) {
   InterceptorRegistration registration = new InterceptorRegistration(interceptor);
   this.registrations.add(registration);
   return registration;
 }

registrations是个数组结构,可以添加多个

3、自动义 *


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class MyInterceptor extends HandlerInterceptorAdapter {
 final Logger logger = LoggerFactory.getLogger(getClass());
 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
   //拦截操作
   return true;
 }
}

总结

以上所述是小编给大家介绍的SpringBoot添加自定义 * 的实现代码网站的支持!

来源:https://www.cnblogs.com/zwdx/archive/2018/09/19/9674497.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com