春のフレームワークのアップグレード
SpringBoot2.2
基礎となるSpring Framework
バージョンはアップグレード5.2
。
JMXは、デフォルトでは無効になっています
デフォルトでは、もはやJMXを有効になっていません。この機能を有効にする場合はtrue spring.jmx.enabled構成プロパティを=使用することができます。あなたがアプリケーションを管理するIDEの機能を使用する場合は、その場所でフラグを有効にすることができます。
Javaの13のサポート
春ブーツ2.2は、Java 13人のためのサポートを追加します。また、Java 8と11をサポートしています。
パフォーマンスの向上
使用することでproxyBeanMethods=false
春ブーツに@Configuration
起動時間とメモリ使用量の削減、クラスを。proxyBeanMethods
ある@Configuration
春のフレームワーク5.2 M1が導入された新しいプロパティが。proxyBeanMethods
また、属性として使用することができる@SpringBootApplication
、と@SpringBootConfiguration
。
使用中bootRun
のGradleまたはspring-boot:run
Mavenの開発でアプリケーションを起動する、JVMは、記号(装備される-Xverify:none
と-XX:TieredStopAtLevel=1
起動時間を短縮するために最適化されます)。13回の実行中にJDKは、-Xverify:none
それが放棄されているので、指定されていません。
このバージョンではまた、他のいくつかのパフォーマンスの向上を作りました:
- 大規模な構成属性のバインドに必要な時間が大幅に短縮されました
- ときに春のブート
PersistenceUnit
時にHibernate独自のエンティティのスキャンが無効になっているので、それは、冗長であるため、完全に準備JPAエンティティをスキャンすることにより、 - 注入点自動構成のみ豆の場合に適用され、改善されているが作成されなければなりません
- 今だけのエンドポイントを有効にし、アクチュエータのエンドポイントビーン(JMX経由またはHTTP)に関連する公開を作成します。
- 条件自動コーデックコンフィグレーションは、コーデックを使用する場合、それはもはや構成するように改善されていません
- TomcatのMBeanのレジストリは、デフォルトでは無効になっているので、メモリフットプリントは約2メガバイトTomcatが低減され
遅延初期化
これが今することができspring.main.lazy-initialization
、起動時の属性を減らすためにグローバルな初期化遅延を有効にします。この機能は、特定のコストや費用を支払うことが必要となる場合がありますのでご注意ください。
- 任意の初期化遅延処理中のHTTPリクエストは時間がかかることがあります
- あなたは後になるまで起動したときに今、失敗は通常発生しません。
注釈それぞれの定義を使用することにより、各Beanは遅延初期化をオプトアウトすることができます@Lazy(false)
。あなたができない場合は@Lazy(false)
遅延初期化のオプトアウト、LazyInitializationExcludeFilter
あなたの代わりに豆を使用することができます。たとえば、してはいけませんIntegrationFlow
Beanが非アクティブに設定されている、次のコードを使用することができます。
@Bean 静的LazyInitializationExcludeFilter integrationLazyInitExcludeFilter(){ 戻り LazyInitializationExcludeFilter.forBeanTypes(IntegrationFlow。クラス)。 }
JUnitの5
spring-boot-starter-test
これは、デフォルトのJUnit 5で利用可能になりました。あなたが移行する場合のJUnit 5に移行する準備ができているので、サポートレガシーのJUnitテストクラス4に古いエンジン5用のJUnitを含め、デフォルトでは。これは、同じモジュール内のテストクラスのJUnit 4のJUnit 5に基づいて混合して用いてもよいです。これは、必要に応じて徐々にJUnitの5に移行することができます。
ノート、JUnitのMavenのシュアプラグ4は、このサポートしていませんしてくださいlistener
プロパティ。あなたは、次のようなMavenの構成を有している場合:
< 構成> < プロパティ> < プロパティ> < 名前>リスナー</ 名前> < 値> com.example.CustomRunListener </ 値> </ プロパティ> </ プロパティ> </ 構成>
あなたは使用することができない、junit-vintage-engine
と明示的に必要がJUnitの4にロールバック:
< 依存性> < 依存性> < のgroupId > org.springframework.boot </ のgroupId > < たartifactId >ばねブートスタータ試験</ たartifactId > < スコープ>テスト</ スコープ> < 除外> < 除外> < のgroupId > ORG .junit.jupiter </ groupIdを> < たartifactId > JUnitの-木星</ たartifactId > </除外> < 除外> < のgroupId > org.junit.vintage </ のgroupId > < たartifactId > JUnitのヴィンテージエンジン</ たartifactId > </ 除外> < 除外> < のgroupId > org.mockito </ のgroupId > < たartifactId > mockito -junit-木星</ たartifactId > </ 除外> </ 除外> </ 依存> < 依存性> < のgroupId > JUnitの</ のgroupId > < たartifactId > JUnitの</ たartifactId > < バージョン> 4.12 </ バージョン> </ 依存> </ 依存関係>
データソースのヘルスモニタリング
DataSource
健康指標は余分を含めるvalidationQuery
と認証クエリプロパティの使用に反対DataSource
。ここでも、hello
プロパティによって提供される結果は、名前が変更されましたresult
。
FreeMarkerのテンプレートの設定
このバージョンでは、デフォルトのテンプレートファイルの拡張子Freemarkerのテンプレートを変更しました。これは、一貫性のあるセキュリティ設定のデフォルト春ブーツとWebアプリケーションのことができます。ときにアップグレード、名前の変更から既存のテンプレートです。*.ftl
*.ftlh
デベロッパーツールの設定ディレクトリ
今、世界のデベロッパーツールの設定のための好ましい位置です~/.config/spring-boot
。あなたは、次の書類のいずれかを使用できます。
spring-boot-devtools.properties
spring-boot-devtools.yaml
spring-boot-devtools.yml
@ConfigurationPropertiesScan
@ConfigurationProperties
あなたは今の代わりに使用で、クラスのクラス注釈付きパススキャンで見つけることができます@EnableConfigurationProperties
か@Component
。追加@ConfigurationPropertiesScan
スキャンを有効にするには、アプリケーションに。
2.2.0春ブーツでは、スキャン設定のプロパティではデフォルトで有効になっていますが、春ブーツ2.2.1から始まる、あなたが選択する必要があります
@ConfigurationPropertiesScan
。
@ConstructorBinding
構成プロパティは現在、結束バンドのことができますバインディングコンストラクタをサポート@ConfigurationProperties
クラスは不変注釈付き。コメントを使用することで@ConfigurationProperties
1つのクラスのコンストラクタまたはコンストラクタに基づいて結合可能にします@ConstructorBinding
。今結合特性によって提供されるコンストラクタのパラメータとして使用することができる@DefaultValue
とコメント@DateTimeFormat
。
春ブーツ2.2が推奨されていません
logging.file
プロパティは、名前が変更されましたlogging.file.name
。logging.path
プロパティは、名前が変更されましたlogging.file.path
。server.connection-timeout
彼らの行動はまったく同じではないので、この性質、使用サーバー固有の属性を使用することをお勧めしません。server.use-forward-headers
ないプロパティの使用を支持するserver.forward-headers-strategy
、以前のserver.use-forward-headers=true
Webサーバーの用途ネイティブサポート。さて、あなたは同じ機能を実現することができますserver.forward-headers-strategy=native
。各サーバが特定の動作を持っているので、我々は今、代替は、この代替方法は、春に依存していますForwardedHeaderFilter
:server.forward-headers-strategy=framework
。開発者は、最高の自分のユースケースに適したオプションを使用する必要があります。ReactiveWebServerApplicationContext#getWebServerFactory
。agent
プロパティのMavenプラグインの名前が変更されましたagents
。- 非推奨ジョダ時間サポート
java.time
。 ApplicationHealthIndicator
好意はPingHealthIndicator
、常に貢献することです。ConfigurationBeanFactoryMetadata
賛成ConfigurationPropertiesBean
。ConfigurationPropertiesBindingPostProcessor
承認@EnableConfigurationProperties
またはregister
コンストラクタメソッド。ConfigurationPropertiesBindingPostProcessor.VALIDATOR_BEAN_NAME
これは、移動されましたEnableConfigurationProperties.VALIDATOR_BEAN_NAME
。ConfigurationPropertiesBindingPostProcessorRegistrar
賛成@EnableConfigurationProperties
。WebTestClientBuilderCustomizer
これは、移動されましたorg.springframework.boot.test.web.reactive.server
。
リンクします。https://www.jianshu.com/p/c3d00a8e6598