Skip to content

Commit 0d124e9

Browse files
committed
Remove use of field injection from spring-boot-devtools
Closes gh-17442
1 parent bd22ca0 commit 0d124e9

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

spring-boot-project/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/remote/client/RemoteClientConfiguration.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import org.apache.commons.logging.LogFactory;
2929

3030
import org.springframework.beans.factory.InitializingBean;
31-
import org.springframework.beans.factory.annotation.Autowired;
31+
import org.springframework.beans.factory.ObjectProvider;
3232
import org.springframework.beans.factory.annotation.Value;
3333
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3434
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -131,20 +131,21 @@ private void logWarnings() {
131131
@ConditionalOnProperty(prefix = "spring.devtools.livereload", name = "enabled", matchIfMissing = true)
132132
static class LiveReloadConfiguration {
133133

134-
@Autowired
135-
private DevToolsProperties properties;
134+
private final DevToolsProperties properties;
136135

137-
@Autowired(required = false)
138-
private LiveReloadServer liveReloadServer;
136+
private final ClientHttpRequestFactory clientHttpRequestFactory;
139137

140-
@Autowired
141-
private ClientHttpRequestFactory clientHttpRequestFactory;
142-
143-
@Value("${remoteUrl}")
144-
private String remoteUrl;
138+
private final String remoteUrl;
145139

146140
private ExecutorService executor = Executors.newSingleThreadExecutor();
147141

142+
LiveReloadConfiguration(DevToolsProperties properties, ClientHttpRequestFactory clientHttpRequestFactory,
143+
@Value("${remoteUrl}") String remoteUrl) {
144+
this.properties = properties;
145+
this.clientHttpRequestFactory = clientHttpRequestFactory;
146+
this.remoteUrl = remoteUrl;
147+
}
148+
148149
@Bean
149150
@RestartScope
150151
@ConditionalOnMissingBean
@@ -164,8 +165,8 @@ ApplicationListener<ClassPathChangedEvent> liveReloadTriggeringClassPathChangedE
164165
}
165166

166167
@Bean
167-
OptionalLiveReloadServer optionalLiveReloadServer() {
168-
return new OptionalLiveReloadServer(this.liveReloadServer);
168+
OptionalLiveReloadServer optionalLiveReloadServer(ObjectProvider<LiveReloadServer> liveReloadServer) {
169+
return new OptionalLiveReloadServer(liveReloadServer.getIfAvailable());
169170
}
170171

171172
final ExecutorService getExecutor() {
@@ -181,11 +182,11 @@ final ExecutorService getExecutor() {
181182
@ConditionalOnProperty(prefix = "spring.devtools.remote.restart", name = "enabled", matchIfMissing = true)
182183
static class RemoteRestartClientConfiguration {
183184

184-
@Autowired
185-
private DevToolsProperties properties;
185+
private final DevToolsProperties properties;
186186

187-
@Value("${remoteUrl}")
188-
private String remoteUrl;
187+
RemoteRestartClientConfiguration(DevToolsProperties properties) {
188+
this.properties = properties;
189+
}
189190

190191
@Bean
191192
ClassPathFileSystemWatcher classPathFileSystemWatcher(FileSystemWatcherFactory fileSystemWatcherFactory,
@@ -220,8 +221,9 @@ ClassPathRestartStrategy classPathRestartStrategy() {
220221
}
221222

222223
@Bean
223-
ClassPathChangeUploader classPathChangeUploader(ClientHttpRequestFactory requestFactory) {
224-
String url = this.remoteUrl + this.properties.getRemote().getContextPath() + "/restart";
224+
ClassPathChangeUploader classPathChangeUploader(ClientHttpRequestFactory requestFactory,
225+
@Value("${remoteUrl}") String remoteUrl) {
226+
String url = remoteUrl + this.properties.getRemote().getContextPath() + "/restart";
225227
return new ClassPathChangeUploader(url, requestFactory);
226228
}
227229

0 commit comments

Comments
 (0)