SpringBoot学习之注解@Configuration的作用、使用以及说明

参考文档:https://blog.csdn.net/BinshaoNo_1/article/details/85005935?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/lujiangui/article/details/82053790?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

Spring的Java配置方式是通过@Configuration和@Bean这两个注解来实现(此处可以参考博文https://blog.csdn.net/qq_41623154/article/details/104654953,关于springboot的属性注入,有详细讲解):

@Configuration可以作用在任意类上,表示该类是一个配置类,其实就相当于一个xml配置文件。

@Bean作用于方法上,其实就相当于xml配置文件中的bean,表示创建一个Bean,方法的返回值类型表示该Bean的类型,方法名表示该Bean的ID。

在Spring3.0,@Configuration用于定义配置类,相当于xml配置文件,在springboot项目中,用来替换xml配置文件。被注解的类内部包含有一个或多个@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bea定义,初始化spring容器。

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
                .excludePathPatterns("/","/index.html","/login","/userLogin","/static/**");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        WebMvcConfigurer.super.addResourceHandlers(registry);
    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        /*设置默认跳转的请求视图*/
        registry.addViewController("/").setViewName("login");
        registry.addViewController("/index.html").setViewName("login");
        registry.addViewController("/login").setViewName("login");
        registry.addViewController("/main.html").setViewName("main");
    }


}

注意点:@Configuration注解的配置类有以下要求:

  1. 配置类不可以是final类型;
  2. 配置类不可以是匿名类;
  3. 配置类嵌套的类必须是静态的;

@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文)

总结

@Configuation等价于<Beans></Beans>

 @Bean等价于<Bean></Bean>

 @ComponentScan等价于<context:component-scan base-package=”com.study.mapper”/>

发布了33 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41623154/article/details/104742949
今日推荐