English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

DevToolsSpringBoot

Spring Boot DevTools

Spring Boot 1.3提供了另一个名为Spring Boot DevTools的模块。 DevTools代表 Developer Tool 。该模块的目的是在使用Spring Boot应用程序时尝试并缩短开发时间。 Spring Boot DevTools接受更改并重新启动应用程序。

我们可以通过在pom.xml文件中添加以下依赖项来在我们的项目中实现DevTools。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>

Spring Boot DevTools功能

Spring Boot DevTools提供以下功能:

属性默认值 自动重启 LiveReload 远程调试隧道 远程更新和重新启动

属性默认值: : Spring Boot提供了模板技术 Thymeleaf ,包含属性 spring.thymeleaf.cache.Cache e ci permette di aggiornare le pagine senza riavviare l'applicazione. Ma impostare queste proprietà durante lo sviluppo può portare sempre a problemi.

Quando si utilizza il modulo spring-boot-devtools, non è necessario impostare le proprietà. Durante lo sviluppo delle cache delle template Thymeleaf, Freemarker, Groovy, viene disabilitato automaticamente.

Attenzione: Se non vogliamo applicare i valori predefiniti delle proprietà all'applicazione, possiamo impostare configprop: spring.devtools.add-properties [] su false nel file application.properties.

Riavvio automatico: Riavvio automatico significa ricaricare le classi Java e configurarle sul lato server. Dopo aver apportato modifiche sul lato server, viene distribuito dinamicamente, il server viene riavviato e viene caricato il codice modificato. Questo viene utilizzato principalmente per applicazioni basate su microservizi. Spring Boot utilizza duetype di class loader:

Le classi invariabili (due terzi) sono caricate nelclass loader di base. Le classi che stiamo sviluppando attivamente sono caricate nelriavvio del class loader.

Quando l'applicazione viene riavviata, il class loader del riavvio viene eliminato e viene riempito con una nuova classe. Pertanto, il class loader di base è sempre disponibile e riempito.

Possiamo utilizzare l'attributo spring.devtools.restart.enabled impostato su per disabilitare il riavvio automatico del server. Errori.

Ricorda:

DevTools monitora sempre le risorse della class path. L'unico modo per avviare un riavvio è aggiornare la class path. DevTools necessita di un class loader dell'applicazione separato per funzionare correttamente. Di default, il processo derivato di Maven per l'applicazione. Riavvio automatico con LiveReload funziona bene insieme. DevTools dipende dal hook di chiusura del contesto dell'applicazione per chiuderlo durante il riavvio.

LiveReload: Il modulo Spring Boot DevTools include un componente chiamato server integrato di LiveReload.Se facciamo delle modifiche, l'applicazione può aggiornare automaticamente il browser. Risorse. Questo viene anche chiamato Aggiornamento automatico.

Attenzione: possiamo impostare le proprietà disabilitare LiveReload, impostare la proprietà spring.devtools.livereload. AbilitarePer false.

Fornisce estensioni del browser per Chrome, Firefox e Safari. Di default, LiveReload è attivato. LiveReload lavora nei seguenti percorsi:

/META-INF/maven /META-INF/resources /risorse /static /public /template

Possiamo anche disabilitare il ricarico automatico del browser escludendo i percorsi sopra menzionati. Ad esempio:

spring.devtools.restart.exclude=public/**, static/**, templates/**

Possiamo utilizzare l'attributo spring.devtools.restart.additional-paths visualizza altri percorsi aggiuntivi.Ad esempio:

spring.devtools.restart.additional-paths=/path-to-folder

Se dobbiamo escludere altri percorsi e desideriamo mantenere i percorsi predefiniti, utilizzare l'attributo spring.devtools.restart.additional-exclude.Ad esempio:

spring.devtools.restart.additional-exclude=styles/**

Ricorda

Possiamo eseguire un server LiveReload alla volta. Assicurati che non ci siano altri server LiveReload in esecuzione prima di avviare l'applicazione. Se avviamo più applicazioni dall'IDE, supporta solo il primo LiveReload.

Tunnel di debug remoto: Spring Boot può tunnelare direttamente JDWP (Java Debug Wire Protocol) all'applicazione tramite HTTP. Può anche distribuire l'applicazione su provider di cloud Internet che pubblicano solo i porti 80 e 443.

Aggiornamento e riavvio remoto: Un'altra tecnica fornita da DevTools è: supporta applicazioni remote AggiornamentoRiavvio.Sorveglia le modifiche ai file nel percorso della classpath locale e le invia al server remoto, quindi riavvia. Possiamo anche combinare questa funzione con LiveReload.

utilizzo del file di trigger

A causa del riavvio frequente, l'riavvio automatico a volte può rallentare il tempo di sviluppo. Per risolvere questo problema, possiamo utilizzare un File di trigger.. SpringBoot sorveglia il file di trigger e rileva le modifiche nel file. Riavvia il server e ricarica tutte le modifiche precedenti.

Possiamo aggiungere l'attributo spring.devtools.restart.trigger-file realizza il file di trigger nel nostro applicativo.è interno o esterno. Ad esempio:

spring.devtools.restart.trigger-file=c:/workspace-sts-3.9.9.RELEASE/restart-trigger.txt

示例Spring Boot DevTools

步骤1: 使用Spring Initializr https://start.spring.io/。

步骤2: 提供 名称和 工件 ID。我们提供了组名 com.w3codebox 和工件ID spring-boot-devtools-example。

步骤3: 添加以下依赖项: spring-boot-starter-web spring-boot-devtools

步骤4: 点击 生成按钮。它将下载项目的 Jar 文件。

步骤5: 提取Jar文件。

步骤6: 将文件夹导入STS。

文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-devtools-example->完成

导入成功后,我们可以在STS的Package Explorer部分中看到以下目录。

步骤7: 打开 SpringBootDevtoolsExampleApplication.java 并将其作为Java应用程序运行。

然后,在应用程序中进行任何更改(编辑或删除一些文件或代码),然后保存所做的更改。保存更改后,服务器将重新启动并获取更改。