我有两个Spring Boot应用程序,更确切地说,一个是Spring YARN应用程序(目前用于我的测试,我使用this tutorial中的一个),另一个用于提供REST接口。我希望能够通过REST接口将YARN应用程序提交到我的Hadoop集群。所以我添加了Spring YARN应用程序作为我的REST应用程序的依赖项。现在我遇到的问题是,当我启动我的REST应用程序时,也会找到Spring YARN客户端,这会导致它被启动,并且会按预期失败。
我现在的问题是:如何告诉Spring Boot的@EnableAutoConfiguration
忽略Spring YARN应用程序?
我尝试了以下事情但没有成功:
@ComponentScan
中的基础包(它们与两个应用程序不相交)@EnableAutoConfiguration(exclude=...)
开始初始化的类
CommandYarnClient.class
SpringYarnClientConfiguration.class
yarn
,REST应用程序为rest
我想做的事情是不可能的,还是背后有一些技巧?
答案 0 :(得分:0)
解决了!
Spring Boot Reference Guide指示我解决方案。如果您更全面地阅读Gradually replacing auto-configuration上的部分,可以在那里找到:
如果您需要了解当前正在应用的自动配置以及原因,请使用
--debug
开关启动您的应用程序。这会将自动配置报告记录到控制台。
我这样做了,看到启动过程试图执行YarnClientAutoConfiguration
,所以我将自动配置行改为
@EnableAutoConfiguration(exclude = YarnClientAutoConfiguration.class)
瞧,瞧,我得到了我想要的东西。