首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有@EnableAutconfiguration或@SpringBootApplication,我如何让spring-boot-devtools工作?

没有@EnableAutconfiguration或@SpringBootApplication,我如何让spring-boot-devtools工作?
EN

Stack Overflow用户
提问于 2019-11-30 01:57:24
回答 1查看 557关注 0票数 0

我正在开发一个使用spring-Bootv1.3.5.RELEASE的应用程序,它既不使用@SpringBootApplication,也不使用@EnableAutconfiguration (客户要求)。

我想让spring-boot-devtools在我的集成开发环境中具有“重新启动”功能。我把它作为依赖项,点击mvn spring-boot:run。重新启动程序可以工作:

代码语言:javascript
复制
DEBUG o.s.b.d.r.Restarter - Creating new Restarter for thread Thread[main,5,main]
DEBUG o.s.b.d.r.Restarter - Immediately restarting application
DEBUG o.s.b.d.r.Restarter - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@22843e39
DEBUG o.s.b.d.r.Restarter - Starting application application.Application with URLs [file:/D:/git/repos/...]

但在IDE代码修改和刷新(eclipse上的Ctrl+B)之后,它不会重新加载。

问题似乎是devtools依赖于@EnableAutconfiguration (用META-INF/spring.factories加载的工厂)来配置(而我不能使用这个注释)。基本上,我需要自己做这件事(参见下面devtools spring.factories文件的内容):

代码语言:javascript
复制
# Application Initializers
org.springframework.context.ApplicationContextInitializer=\
org.springframework.boot.devtools.restart.RestartScopeInitializer
# Application Listeners
org.springframework.context.ApplicationListener=\
org.springframework.boot.devtools.restart.RestartApplicationListener
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.devtools.autoconfigure.DevToolsDataSourceAutoConfiguration,\
org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration,\
org.springframework.boot.devtools.autoconfigure.RemoteDevToolsAutoConfiguration
# Environment Post Processors
org.springframework.boot.env.EnvironmentPostProcessor=\
org.springframework.boot.devtools.env.DevToolsHomePropertiesPostProcessor,\
org.springframework.boot.devtools.env.DevToolsPropertyDefaultsPostProcessor
# Restart Listeners
org.springframework.boot.devtools.restart.RestartListener=\
org.springframework.boot.devtools.log4j2.Log4J2RestartListener

我如何才能做到这一点(我不是特别流利的spring-boot语言)?

EN

回答 1

Stack Overflow用户

发布于 2019-11-30 17:04:17

您应该能够通过自己的@Configuration类来@Import要使用的DevTools自动配置类。您可能不需要远程支持,在这种情况下,以下条件应该就足够了:

代码语言:javascript
复制
@Configuration
@Import({LocalDevToolsAutoConfiguration.class, DevToolsDataSourceAutoConfiguration.class})
class ManaulDevToolsConfiguration {

}

如果您希望使用自己的bean来代替任何DevTools的自动配置bean,则需要仔细排序,以确保在导入DevTools自动配置类之前定义您的bean,并对缺少的bean条件进行评估。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59109285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档