Browse Source

Break circular dependency in DevTools without using field injection

pull/13050/head
Andy Wilkinson 8 years ago
parent
commit
d0f329caa4
  1. 27
      spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfiguration.java

27
spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfiguration.java

@ -62,24 +62,12 @@ public class LocalDevToolsAutoConfiguration { @@ -62,24 +62,12 @@ public class LocalDevToolsAutoConfiguration {
@ConditionalOnProperty(prefix = "spring.devtools.livereload", name = "enabled", matchIfMissing = true)
static class LiveReloadConfiguration {
private DevToolsProperties properties;
private LiveReloadServer liveReloadServer;
LiveReloadConfiguration(DevToolsProperties properties,
ObjectProvider<LiveReloadServer> liveReloadServer) {
this.properties = properties;
LiveReloadConfiguration(ObjectProvider<LiveReloadServer> liveReloadServer) {
this.liveReloadServer = liveReloadServer.getIfAvailable();
}
@Bean
@RestartScope
@ConditionalOnMissingBean
public LiveReloadServer liveReloadServer() {
return new LiveReloadServer(this.properties.getLivereload().getPort(),
Restarter.getInstance().getThreadFactory());
}
@EventListener
public void onContextRefreshed(ContextRefreshedEvent event) {
optionalLiveReloadServer().triggerReload();
@ -97,6 +85,19 @@ public class LocalDevToolsAutoConfiguration { @@ -97,6 +85,19 @@ public class LocalDevToolsAutoConfiguration {
return new OptionalLiveReloadServer(this.liveReloadServer);
}
@Configuration
static class LiveReloadServerConfiguration {
@Bean
@RestartScope
@ConditionalOnMissingBean
public LiveReloadServer liveReloadServer(DevToolsProperties properties) {
return new LiveReloadServer(properties.getLivereload().getPort(),
Restarter.getInstance().getThreadFactory());
}
}
}
/**

Loading…
Cancel
Save