zoukankan      html  css  js  c++  java
  • Spring拥有多个JavaConfig(@Configuration)的情况

    1:在加载Spring容器时,加载多个@Configuration类。 

    需要继承AbstractAnnotationConfigDispatcherServletInitializer类,并重写其方法来加载@Configuration标注的类

    @Override

    protected Class<?>[] getServletConfigClasses() {

          return new Class<?>[] { FirstConfig.class,SecondConfig.class };

    }

    或者

    AnnotationConfigApplicationContext aContext = new AnnotationConfigApplicationContext();
    aContext.register(FirstConfig.class);
    aContext.register(SecondConfig.class);
    aContext.refresh();

    2:在加载Spring容器时,加载单个@Configuration类,但要通过@Import 方式整合其他@Configuration类。

    @Configuration
    @Import(SecondConfig.class)
    public class FirstConfig {

        @Bean
        public FirstServiceImpl firstServiceImpl(SecondService secondService){
            FirstServiceImpl fImpl = new FirstServiceImpl();
             fImpl.setSecondService(secondService);
             return fImpl;
        }
    }


    原理总结:

    1、@Configuration类会先合并,后解析,也就是说,配置的内容会合并处理。

    2、因为多个 @Configuration类最终会合并到一起(形成一个 ApplicationContext),因此这些配置中的 bean 都是可以互相引用的。

  • 相关阅读:
    泛型约束new()的使用
    控制反转-依赖注入
    微服务的六个基本点
    java反编译工具
    Idea中一些常用设置
    JSP内置对象(9个常用的内置对象)
    输出输入流,的应用

    容器集合类
    容器与集合
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302459.html
Copyright © 2011-2022 走看看