该位置不允许使用@Configuration注释

时间:2018-07-13 10:36:52

标签: spring spring-mvc configuration

按照dzone上的教程进行简单的spring + maven项目时,我收到错误消息@Configuration不适用于此位置。

我的课-

package com.xyz;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
@EnableWebMvc
@ComponentScan(basePackages = "com.example")
public class SpringConfig extends WebMvcConfigurerAdapter{

    @Bean
    public ViewResolver viewResolver() {@Configuration
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/pages/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

2 个答案:

答案 0 :(得分:1)

@Configuration注释的目的是指定一个类,在该类中spring将在spring上下文中找到要保存的对象(@Bean),以便可以在整个应用程序中使用它们。

要指定此类,请将@Configuration放在类声明的顶部。 Spring将自动读取@Bean方法以获取和存储Bean对象。

答案 1 :(得分:0)

@Configuration仅适用于元素TYPE(类),因此您不能将注释放在这样的代码中间:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration