WebMvcConfigurerAdapter不起作用

这是我正在处理的WebConfig代码:

package hello.config;

import org.springframework.context.annotation.Configuration;

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

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

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

@Configuration

public class WebConfig extends WebMvcConfigurerAdapter {

@Override

public void addViewControllers(ViewControllerRegistry registry) {

registry.addViewController("/greeting").setViewName("greeting");

}

}

这是我的Application.class

package hello;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.context.web.SpringBootServletInitializer;

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

@SpringBootApplication

public class Application extends SpringBootServletInitializer{

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(Application.class);

}

}

这些类方法在某些系统中不会被调用似乎是一个Spring Boot问题。相应的问题在以下网址报告:https : //github.com/spring-projects/spring-

boot/issues/2870

我的问题是,我们可以将此类之外的资源映射为此类的临时解决方法吗?

如果是,我们该怎么做?

按照安迪·威尔金森的建议,我删除@EnableWebMvc了该演示应用程序,并开始工作。然后,我尝试逐个删除项目文件,以查看错误消失的时间。我发现我在项目中有两个类,一个是从扩展的WebMvcConfigurationSupport,第二是从扩展的WebMvcConfigurerAdapter。从项目中删除前一个类可以修复该错误。

我想知道的是,为什么会这样?其次,为什么此错误没有出现在所有系统上?

回答:

问题是WebConfigconfig包装中并且Applicationhello包装中。@SpringBootApplicationon

Application启用组件扫描以查找声明它的包以及该包的子包。在这种情况下,这意味着它hello是组件扫描的基础包,因此,WebConfig在该config包中永远找不到。

为了解决该问题,我将WebConfig进入例如hello软件包或子软件包hello.config

您在GitHub上的最新更新WebConfig已从扩展WebMvcConfigurerAdapter变为扩展WebMvcConfigurationSupportWebMvcConfigurationSupport是通过@EnableWebMvc这样对类进行注释@EnableWebMvc和扩展WebMvcConfigurationSupport来导入的类,因此将配置两次。您应该WebMvcConfigurerAdapter像以前一样继续扩展。

以上是 WebMvcConfigurerAdapter不起作用 的全部内容, 来源链接: utcz.com/qa/428246.html

回到顶部