Eclipse Spring Bootが熱い展開を実現
6333 ワード
Spring Boot配置devtoolsによるホット展開を実現
springは開発者にspring-boot-devtoolsというモジュールを提供して、Spring Bootアプリケーションを熱展開をサポートし、開発者の開発効率を高め、Spring Bootアプリケーションを手動で再起動する必要がない.
devtoolsの原理
深層原理は二つのClass Loaderを使って、一つのクラスloaderはそれらの変えられないクラス(第三者Jarカバン)をロードして、もう一つのクラスClass Loaderはローディングして変更するクラスをローディングして、retart Class Loaderといいます.このようにコードが変更された時、もとのretart Class Loaderは捨てられて、もう一つのrestlass Loaderを作成します.だから、より速い再起動時間を実現しました.
以下の設定を追加する必要があります.
eclipse–Project–Build Automaticalyを選択するには、選択しないと機能しません.
説明:
(1)devtoolsは、ページの熱的展開を実現することができます(つまり、ページ修正後すぐに有効になります.これは直接にappication.propertiesファイルにspring.thymelea.cache=falseを配置して実現します).クラスファイルの熱い展開を実現します.すなわち、devtoolsは、classipathのファイルの変更を監督し、すぐにアプリケーションを再起動します.(保存タイミングで発生します.)注意:採用された仮想マシンのメカニズムのため、再起動はとても速い(2)配置後、javaファイルを修正してからも熱起動をサポートしますが、この方式はプロジェクトの再起動(速度が比較的速いプロジェクトの再起動)に属し、sessionの値が空になります.つまり、ユーザーがログインしたら、プロジェクトが再起動されたら再登録が必要です.
デフォルトでは、/META-INF/maven、/META-INF/resource、/static、/templates、/publicなどのファイル修正はアプリケーションを再起動しませんが、再ロードされます.
devtoolsの配置
appication.propertiesにspring.devtools.resttart.enabled=falseを配置して、この時retart種類のキャリアはまだ初期化されますが、ファイルの更新は監視されません.Sprintaplication.runの前にSystem.set Propertyを呼び出します.再起動サポートを完全にオフにすることができます.設定内容:
クラスを変更する->保存:アプリケーションはを再起動します.
設定ファイルを変更する–保存:アプリケーションが再起動されます.
ページの変更->保存:アプリケーションは再起動されませんが、再読み込みされます.ページはリフレッシュされます.
springは開発者にspring-boot-devtoolsというモジュールを提供して、Spring Bootアプリケーションを熱展開をサポートし、開発者の開発効率を高め、Spring Bootアプリケーションを手動で再起動する必要がない.
devtoolsの原理
深層原理は二つのClass Loaderを使って、一つのクラスloaderはそれらの変えられないクラス(第三者Jarカバン)をロードして、もう一つのクラスClass Loaderはローディングして変更するクラスをローディングして、retart Class Loaderといいます.このようにコードが変更された時、もとのretart Class Loaderは捨てられて、もう一つのrestlass Loaderを作成します.だから、より速い再起動時間を実現しました.
以下の設定を追加する必要があります.
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<configuration>
<fork>truefork>
configuration>
plugin>
plugins>
build>
以下の内容を設定しなければなりません.eclipse–Project–Build Automaticalyを選択するには、選択しないと機能しません.
説明:
(1)devtoolsは、ページの熱的展開を実現することができます(つまり、ページ修正後すぐに有効になります.これは直接にappication.propertiesファイルにspring.thymelea.cache=falseを配置して実現します).クラスファイルの熱い展開を実現します.すなわち、devtoolsは、classipathのファイルの変更を監督し、すぐにアプリケーションを再起動します.(保存タイミングで発生します.)注意:採用された仮想マシンのメカニズムのため、再起動はとても速い(2)配置後、javaファイルを修正してからも熱起動をサポートしますが、この方式はプロジェクトの再起動(速度が比較的速いプロジェクトの再起動)に属し、sessionの値が空になります.つまり、ユーザーがログインしたら、プロジェクトが再起動されたら再登録が必要です.
デフォルトでは、/META-INF/maven、/META-INF/resource、/static、/templates、/publicなどのファイル修正はアプリケーションを再起動しませんが、再ロードされます.
devtoolsの配置
appication.propertiesにspring.devtools.resttart.enabled=falseを配置して、この時retart種類のキャリアはまだ初期化されますが、ファイルの更新は監視されません.Sprintaplication.runの前にSystem.set Propertyを呼び出します.再起動サポートを完全にオフにすることができます.設定内容:
#
spring.devtools.restart.enabled: true
#
#spring.devtools.restart.additional-paths: src/main/java
#classpath WEB-INF
spring.devtools.restart.exclude: WEB-INF/**
テストクラスを変更する->保存:アプリケーションはを再起動します.
設定ファイルを変更する–保存:アプリケーションが再起動されます.
ページの変更->保存:アプリケーションは再起動されませんが、再読み込みされます.ページはリフレッシュされます.