springboot禁止循环依赖

2021-05-19  本文已影响0人  江江的大猪
@Slf4j
@SpringBootApplication
@PropertySource(value = {"classpath:conf.properties"}, encoding = "UTF-8")
public class StartUp {

    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        // 手动禁止循环依赖,高版本springboot默认已经禁止了同名bean并提供了配置项,但是没提供循环依赖的配置项
        try (ConfigurableApplicationContext context = new SpringApplicationBuilder(StartUp.class)
                .initializers((ApplicationContextInitializer<GenericApplicationContext>) applicationContext -> {
                    applicationContext.setAllowCircularReferences(false);
                }).run(args)) {
            // 先启动grpc再启动http探活
            context.getBean(GrpcServer.class).start();
            context.getBean(HttpServer.class).bind();
            log.info("start success cost:{}", System.currentTimeMillis() - start);
        } catch (Exception e) {
            log.error("start error", e);
            System.exit(-1);
        }
    }
}

上一篇 下一篇

猜你喜欢

热点阅读