Skip to content

Commit d0f329c

Browse files
committed
Break circular dependency in DevTools without using field injection
1 parent 06cf698 commit d0f329c

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

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

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,24 +62,12 @@ public class LocalDevToolsAutoConfiguration {
6262
@ConditionalOnProperty(prefix = "spring.devtools.livereload", name = "enabled", matchIfMissing = true)
6363
static class LiveReloadConfiguration {
6464

65-
private DevToolsProperties properties;
66-
6765
private LiveReloadServer liveReloadServer;
6866

69-
LiveReloadConfiguration(DevToolsProperties properties,
70-
ObjectProvider<LiveReloadServer> liveReloadServer) {
71-
this.properties = properties;
67+
LiveReloadConfiguration(ObjectProvider<LiveReloadServer> liveReloadServer) {
7268
this.liveReloadServer = liveReloadServer.getIfAvailable();
7369
}
7470

75-
@Bean
76-
@RestartScope
77-
@ConditionalOnMissingBean
78-
public LiveReloadServer liveReloadServer() {
79-
return new LiveReloadServer(this.properties.getLivereload().getPort(),
80-
Restarter.getInstance().getThreadFactory());
81-
}
82-
8371
@EventListener
8472
public void onContextRefreshed(ContextRefreshedEvent event) {
8573
optionalLiveReloadServer().triggerReload();
@@ -97,6 +85,19 @@ public OptionalLiveReloadServer optionalLiveReloadServer() {
9785
return new OptionalLiveReloadServer(this.liveReloadServer);
9886
}
9987

88+
@Configuration
89+
static class LiveReloadServerConfiguration {
90+
91+
@Bean
92+
@RestartScope
93+
@ConditionalOnMissingBean
94+
public LiveReloadServer liveReloadServer(DevToolsProperties properties) {
95+
return new LiveReloadServer(properties.getLivereload().getPort(),
96+
Restarter.getInstance().getThreadFactory());
97+
}
98+
99+
}
100+
100101
}
101102

102103
/**

0 commit comments

Comments
 (0)