禁止Bean定义覆盖?

Lar*_*rth 4 spring-boot

我想禁止bean中的bean定义覆盖SpringApplication.换句话说,我想要调用的效果GenericApplicationContext.setAllowBeanDefinitionOverriding(false).在Spring Boot中有推荐的方法吗?

Art*_*lan 7

那么,您可以通过一些Boot功能和上下文自定义来实现它:

@EnableAutoConfiguration
public class MyApp {

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

}
Run Code Online (Sandbox Code Playgroud)

您可以从上述类的源代码和JavaDocs中找到所有其他信息.