java - @Configuration 和 @Bean 注释在此代码中起作用吗?

标签 java spring spring-mvc

我在一家互联网公司工作,最近SpringMVC的一个配置文件出现了问题。

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
    public WebConfig() {
    }
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(new ByteArrayHttpMessageConverter());
        ClassLoader classLoader = this.getClass().getClassLoader();
        if (ClassUtils.isPresent("javax.xml.bind.Binder", classLoader)) {
            converters.add(new Jaxb2RootElementHttpMessageConverter());
        }
        if (ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader)) {
            converters.add(new MappingJackson2HttpMessageConverter());
        }
        StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
        stringConverter.setWriteAcceptCharset(false);
        converters.add(stringConverter);
        converters.add(new ResourceHttpMessageConverter());
        converters.add(new SourceHttpMessageConverter());
        converters.add(new XmlAwareFormHttpMessageConverter());
    }
    @Bean
    public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
        RequestMappingHandlerAdapter adapter = super.requestMappingHandlerAdapter();
        List<HandlerMethodReturnValueHandler> handlers = new ArrayList();
        handlers.add(new ModelAndViewMethodReturnValueHandler());
        handlers.add(new ModelMethodProcessor());
        handlers.add(new ViewMethodReturnValueHandler());
        handlers.add(new HttpEntityMethodProcessor(this.getMessageConverters()));
        handlers.add(new ModelAttributeMethodProcessor(false));
        handlers.add(new NullableRequestResponseBodyMethodProcessor(this.getMessageConverters()));
        handlers.add(new ViewNameMethodReturnValueHandler());
        handlers.add(new MapMethodProcessor());
        if (!CollectionUtils.isEmpty(adapter.getModelAndViewResolvers())) {
            handlers.add(new ModelAndViewResolverMethodReturnValueHandler(adapter.getModelAndViewResolvers()));
        } else {
            handlers.add(new ModelAttributeMethodProcessor(true));
        }
        adapter.setReturnValueHandlers(handlers);
        return adapter;
    }
}  

该类来自外部jar包。

在我的 mvc-core-config.xml 中有一行:

<bean class="com.wosai.upay.common.config.WebConfig"/>

我想知道这些 spring 注解在这个类中是否有效?

最佳答案

据我了解你的意思是@Configuration,如果是这样,这个类在两种情况下将是一个配置类 1) 您将在 Dispatcher Servlet 中将 pass 添加到此类 2)在主配置文件(用@EnableWebMvc注释的类)中,您将使用@Import导入此类,或者如果您放置@ComponentScan该类将被自动扫描

关于java - @Configuration 和 @Bean 注释在此代码中起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017239/

相关文章:

java - 字符串长度问题

java - 十进制算术表达式的意外结果

JavaFX FXML Controller - 构造函数与初始化方法

java - jhipster/spring keycloak 集成 - 设置自定义 redirect_uri

javascript - Spring PostMapping 接收具有空值的对象

java - Spring Boot、JNDI 数据源、Tomcat

java - 将 gdata jar 复制到根目录 : `WEB-INF/lib` or to subdirs: `WEB-INF/lib/gdata/blogger/2.0` , 等?

java - 使用 Java、Spring 进行基于配置文件的可切换 JSON 压缩

templates - thymeleaf :text - Put a text without removing HTML structures

java - 为什么 @HeadMapping 在 Spring MVC 中不可用?