Disallow Bean Definition Overriding?

前端 未结 2 1240
一整个雨季
一整个雨季 2021-01-14 00:51

I want to disallow bean definition overriding in a SpringApplication. In other words, I want the effect of invoking GenericApplicationContext.setAllowBean

2条回答
  •  北恋
    北恋 (楼主)
    2021-01-14 01:10

    Well, you can achieve it with some Boot features and context customization:

    @EnableAutoConfiguration
    public class MyApp {
    
        public static void main(String[] args) throws InterruptedException {
            ConfigurableApplicationContext ctx = new SpringApplicationBuilder(MyApp.class)
                    .initializers(new ApplicationContextInitializer() {
                        @Override
                        public void initialize(GenericApplicationContext applicationContext) {
                            applicationContext.setAllowBeanDefinitionOverriding(false);
                        }
                    }).run(args);
        }
    
    }
    

    All other info you can find from source code and JavaDocs of mentioned classes.

提交回复
热议问题