webmvcconfigurer用法

WebMvcConfigurer用法

一、概述

WebMvcConfigurer是Spring框架中用来配置Web MVC的接口。通过实现该接口,我们可以对Spring MVC的行为进行自定义配置,包括添加拦截器、视图解析器、消息转换器等等。在实际开发中,我们经常会使用WebMvcConfigurer来进行一些定制化的配置,以满足项目的特定需求。

二、使用方式

1. 创建一个类并实现WebMvcConfigurer接口

我们需要创建一个新的类,并实现WebMvcConfigurer接口。在该类中,我们可以重写一些方法来实现自定义的配置。

示例代码如下:

```java

Configuration

public class MyWebMvcConfigurer implements

WebMvcConfigurer {

// 在这里可以重写WebMvcConfigurer的方法来实现自定义配置

}

```

2. 添加Configuration注解 在实现了WebMvcConfigurer接口的类上,我们需要添加Configuration注解,以告诉Spring容器这是一个配置类。

示例代码如下:

```java

Configuration

public class MyWebMvcConfigurer implements

WebMvcConfigurer {

// 在这里可以重写WebMvcConfigurer的方法来实现自定义配置

}

```

3. 重写需要配置的方法

在实现WebMvcConfigurer接口的类中,我们可以根据需要重写一些方法来进行自定义配置。以下是一些常用的配置方法:

- 添加拦截器

```java

Override

public void addInterceptors(InterceptorRegistry registry) {

// 在这里可以添加自定义的拦截器

}

```

- 配置视图解析器

```java

Override

public void configureViewResolvers(ViewResolverRegistry

registry) {

// 在这里可以配置视图解析器

}

```

- 配置消息转换器

```java

Override

public void

configureMessageConverters(List>

converters) {

// 在这里可以配置消息转换器

}

```

- 配置静态资源

```java

Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

// 在这里可以配置静态资源的映射

}

```

- 配置跨域访问

```java

Override

public void addCorsMappings(CorsRegistry registry) {

// 在这里可以配置跨域访问规则

}

```

- 配置路径匹配规则

```java

Override

public void configurePathMatch(PathMatchConfigurer

configurer) {

// 在这里可以配置路径匹配规则

}

```

- 配置跳转规则 ```java

Override

public void addViewControllers(ViewControllerRegistry registry)

{

// 在这里可以配置跳转规则

}

```

三、总结

在本文中,我们介绍了WebMvcConfigurer的用法,其中包括了创建实现WebMvcConfigurer接口的类、添加Configuration注解以及对一些常用配置方法的重写。通过使用WebMvcConfigurer,我们可以对Spring MVC框架进行自定义配置,以满足项目的特定需求。希望本文能够帮助到大家,谢谢阅读!

合集下载

springboot项目从硬盘指定位置读取文件(获取静态资源)

springboot项目从硬盘指定位置读取文件(获取静态资源)

springboot项⽬从硬盘指定位置读取⽂件(获取静态资源)

⽅法⼀:继承WebMvcConfigurerAdapter类

package com.imooc.demo.config;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration

public class FileStaticConfig extends WebMvcConfigurerAdapter {

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

/**

* /source/xxx 指⽂件的访问⽅式 如:localhost:8080/source/abc.wav

* file:d/voice/ 指静态⽂件存放在服务器上的位置

*/

registry.addResourceHandler("/source/**").addResourceLocations("file:"+"d:/voice/");

}

}

⽅法⼆、

websecurityconfigureradapter的init方法

websecurityconfigureradapter的init方法

websecurityconfigureradapter的init方法

WebSecurityConfigurerAdapter是一个用于Spring Security的配置类,它允许用户根据具体需求定制安全配置。在这个类中,init方法是一个关键方法,它在Adapter实例化后立即被调用。本文将详细介绍websecurityconfigureradapter的init方法,包括其功能、实现原理以及如何在实际项目中应用。

一、功能概述

init方法的主要功能是初始化WebSecurityConfigurerAdapter,并为后续的安全配置做好准备。在这个过程中,它会执行以下操作:

1.设置默认的认证逻辑(如匿名认证、Forms 认证等)。

2.配置登录和注销页面。

3.初始化 remember-me 功能。

4.配置 URL 访问规则。

5.配置跨域资源共享(CORS)。

6.注册拦截器(如密码过期拦截器、记住我拦截器等)。

二、实现原理

WebSecurityConfigurerAdapter继承了ConfigurableSecurityBuilder接口,它提供了一系列方法用于配置安全相关的内容。在init方法中,这些方法被调用以完成相应的配置。

1.调用configure(HttpSecurity http)方法,设置默认的认证逻辑和URL访问规则。 2.调用configure(AuthenticationManagerBuilder auth)方法,配置用户认证逻辑。

3.调用configure(FormLoginConfigurer loginConfig)方法,配置登录和注销页面。

4.调用configure(LogoutConfigurer logoutConfig)方法,配置注销逻辑。

5.调用configure(RememberMeConfigurer rememberMeConfig)方法,初始化记住我功能。

handlerinterceptoradapter 获取方法上的注解

handlerinterceptoradapter 获取方法上的注解

在 Spring MVC 中,`HandlerInterceptorAdapter` 是一个拦截器接口,它可以在请求处理过程中对请求进行拦截和处理。要获取方法上的注解,您需要实现 `HandlerInterceptor` 接口,并利用

`HandlerMethod` 对象来获取注解信息。

以下是一个示例,展示如何在拦截器中获取方法上的注解:

```java

import org.springframework.web.method.HandlerMethod;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor {

@Override

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws Exception {

if (handler instanceof HandlerMethod) {

HandlerMethod handlerMethod = (HandlerMethod)

handler;

MyAnnotation annotation =

handlerMethod.getMethod().getAnnotation(MyAnnotation.class);

SpringBoot设置接口超时时间的方法

SpringBoot设置接口超时时间的方法

SpringBoot设置接⼝超时时间的⽅法

SpringBoot设置接⼝访问超时时间有两种⽅式

⼀、在配置⽂件application.properties中加了spring.mvc.async.request-timeout=20000,意思是设置超时时间为20000ms即

20s,

⼆、还有⼀种就是在config配置类中加⼊:

public class WebMvcConfig extends WebMvcConfigurerAdapter {

@Override

public void configureAsyncSupport(final AsyncSupportConfigurer configurer) {

configurer.setDefaultTimeout(20000);

configurer.registerCallableInterceptors(timeoutInterceptor());

}

@Bean

public TimeoutCallableProcessingInterceptor timeoutInterceptor() {

return new TimeoutCallableProcessingInterceptor();

}

}

PS:SpringBoot Rest Api 设置超时时间

项⽬有⼀对外开放api,外⽹访问经常出现超时,刚接触spring boot不久,内置的tomcat不像原先那样在server.xml中设置

request超时时间。

后来查了些资料,在配置⽂件application.properties中加了spring.mvc.async.request-timeout=20000,意思是设置超时时间为

20000ms即20s,超时问题的确不怎么发⽣了。

还有另外⼀种设置⽅式,如下:

public class WebMvcConfig extends WebMvcConfigurerAdapter {

handlermethodargumentresolver用法 -回复

handlermethodargumentresolver用法 -回复

handlermethodargumentresolver用法 -回复

HandlerMethodArgumentResolver是Spring MVC框架提供的一个接口,用于支持自定义方法参数的解析。通过实现这个接口,我们可以灵活地处理Controller方法的参数,将请求中的数据转换为方法所需要的实际参数。在本文中,我们将详细介绍HandlerMethodArgumentResolver的用法,并通过一个示例来演示如何使用它。

第一步:理解HandlerMethodArgumentResolver的作用和原理

HandlerMethodArgumentResolver的作用是将请求中的数据映射到Controller方法的参数上。当客户端发送请求到Spring MVC的DispatcherServlet时,DispatcherServlet会根据请求信息找到对应的HandlerMapping,然后再根据HandlerMapping找到对应的Controller方法。在执行Controller方法之前,Spring MVC会先使用HandlerMethodArgumentResolver来解析请求中的数据,将其转换为方法参数的实际值,然后再将解析后的参数传递给对应的Controller方法。

第二步:实现HandlerMethodArgumentResolver接口

要使用HandlerMethodArgumentResolver,我们首先需要实现它提供的接口。HandlerMethodArgumentResolver接口定义了以下两个方法:

1. supportsParameter():判断当前的HandlerMethodArgumentResolver是否支持解析特定类型的参数。这个方法会在Spring MVC执行Controller方法之前被调用,用于确定是否需要执行当前的HandlerMethodArgumentResolver。

websocketconfigurer 参数

websocketconfigurer 参数

第 1 页 共 2 页 websocketconfigurer 参数

(实用版)

目录

1.WebSocketConfigurer 概述

2.WebSocketConfigurer 参数详解

1.host

2.port

ername

4.password

5.room

6.autoJoin

7.maxAge

8.maxMessageSize

9.minMessageSize

10.maxUsers

11.checkOrigin

12.protocol

13.endpoint

14.allowedOrigins

15.srtpKeyAgreement

16.appData

正文 第 2 页 共 2 页 WebSocketConfigurer 是一个用于配置 WebSocket 连接的工具,它可以帮助开发者轻松地构建和配置 WebSocket 连接。WebSocketConfigurer 包含多个参数,下面将对这些参数进行详细解析。

1.host:WebSocket 服务器的地址。

2.port:WebSocket 服务器的端口号。

ername:用于身份验证的用户名。

4.password:用于身份验证的密码。

5.room:WebSocket 连接所在的房间,通常用于多人通信。

6.autoJoin:自动加入房间,默认为 true。

7.maxAge:WebSocket 连接的最大存活时间,单位为毫秒。

8.maxMessageSize:允许发送的最大消息大小,单位为字节。

9.minMessageSize:允许发送的最小消息大小,单位为字节。

10.maxUsers:允许加入房间的最大用户数。

Springboot使用alibaba的fastJson,@JSONField不起作用的问题

Springboot使⽤alibaba的fastJson,@JSONField不起作⽤的问题

在Springboot中默认的JSON解析框架是jackson

今天引⼊alibaba的fastjson,使⽤@JSONField(serialize=false),让@RestController转换数据给前端的时候不序列化莫些字段,发现@JSONField根本不起作⽤

在⽹上查阅了⼀番,发现Springboot使⽤fastjson需要替换默认的json转换器的

具体解决⽅法有两种:

⼀、(1)启动类继承extends WebMvcConfigurerAdapter (2)覆盖⽅法configureMessageConverters

⼆、(1)在App.java启动类中,注⼊Bean : HttpMessageConverters

第⼀种⽅式:

启动类继承WebMvcConfigurerAdapter,然后对configureMessageConverters⽅法进⾏重写@Override public void configureMessageConverters(List> converters) { super.configureMessageConverters(converters); FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures( SerializerFeature.PrettyFormat ); fastConverter.setFastJsonConfig(fastJsonConfig); converters.add(fastConverter); }

基于springbooti18n国际化后台多种语言设置的方式

基于springbooti18n国际化后台多种语⾔设置的⽅式

之前有做过⼿机端后台的国际化,因为⼿机统⼀传递了language参数,所以只要设置LocaleChangeInterceptor就⾏了

/**

* 配置国际化语⾔

*/

@Configuration

public class LocaleConfig extends WebMvcConfigurerAdapter{

/**

* 默认解析器 其中locale表⽰默认语⾔

*/

@Bean

public LocaleResolver localeResolver() {

SessionLocaleResolver localeResolver = new SessionLocaleResolver();

localeResolver.setDefaultLocale(Locale.CHINA);

return localeResolver;

}

//springboot1.5

@Override

public void addInterceptors(InterceptorRegistry registry) {

LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();

localeInterceptor.setParamName("language");

registry.addInterceptor(localeInterceptor);

}

}

对于某些特殊的后台运⾏代码,⽐如定时器,我则使⽤getByLanguage⽅法

/**

* 国际化⼯具类

*/

@Component

public class MessageUtils{

private static MessageSource messageSource;

static SysErrorLogDao sysErrorLogDao;

interceptorregistry excludepathpattern 写法 -回复

interceptorregistry excludepathpattern 写法 -回复

关于InterceptorRegistry中的excludePathPatterns的写法,以及如何使用它来排除路径的功能,我将逐步回答你的问题。

首先,InterceptorRegistry是Spring框架中的一个类,用于注册和管理拦截器。拦截器是在请求到达控制器之前或之后执行的代码,用于实现一些通用的处理逻辑,例如身份验证、日志记录等。

在拦截器中,我们通常会定义一些需要排除的路径,以确保拦截器不会对这些路径上的请求进行拦截和处理。这就是excludePathPatterns的用途,它是一个字符串数组,用于指定需要排除的路径。

接下来,我将详细介绍excludePathPatterns的写法,以及如何使用它。

1. 写法:

excludePathPatterns可以接受一个或多个路径模式,以逗号分隔。路径模式支持Ant风格的通配符,例如`/user/*`表示以/user/开头的所有路径。

在配置文件(如application.properties或application.yml)中,我们可以使用以下方式设置excludePathPatterns:

application.properties:

properties

spring.mvc.exclude-path-patterns=/user/*,/admin/

application.yml:

yaml

spring:

mvc:

exclude-path-patterns:

- /user/*

- /admin/

实际编码过程中,我们可以使用以下方式设置excludePathPatterns:

在拦截器配置类中,通过实现WebMvcConfigurer接口的addInterceptors方法,使用InterceptorRegistry的excludePathPatterns方法来设置需要排除的路径:

解决slf4j和logback-classic遇到的坑

解决slf4j和logback-classic遇到的坑

slf4j 和 logback-classic遇到的坑

以前⼀直不注意⽇志的打印,最近项⽬需求需要⽤⽇志记录⽤时性能,集成⽇志时遇到的问题记录下。

问题⼀:服务器启动时提⽰未找到slf4j的实现类

此时⼀定是没有在classpath中找到jar包,启动时会有相应的警告提⽰。需要三个包:slf4j-api(接⼝),logback-classic(最优实

现),logback-core(核⼼)。加⼊的位置可能存在两种,⼀种是tomcat需要,需要加在tomcat的lib下,还有⼀种是加在项⽬的

classpath下。

问题⼆:不⽣成⽂件或者⽣成的⽂件路径不对

不⽣成⽂件存在⼀个原因,logback.xml没有配置写⼊到⽂件(默认配置⽂件的顺序是logback-test.xml, logback.groovy,

logback.xml),注意如果是maven项⽬,不要把src/test/resources中的logback-test.xml发到环境中,因为优先级最⾼。关于

⽣成的⽂件路不对,解释是正确的配置

⽂件位置是eclipse的根⽬录,如果配置是

则⽂件位置是eclipse所在盘符的根⽬录,如D盘。

slf4j与logback的结合使⽤

⼀、logback的介绍

Logback是由log4j创始⼈设计的⼜⼀个开源⽇志组件。logback当前分成三个模块:logback-core,logback- classic和logback-

access。logback-core是其它两个模块的基础模块。logback-classic是log4j的⼀个 改良版本。

此外logback-classic完整实现SLF4J API使你可以很⽅便地更换成其它⽇志系统如log4j或JDK14 Logging。logback-access访

问模块与Servlet容器集成提供通过Http来访问⽇志的功能。 Logback是要与SLF4J结合起来⽤两个组件的官⽅⽹站如下:

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档