開発ツール:IDEA 2019
springbootバージョン:2.1.9
一、springboot2.x VS 1.1
基本的な環境をアップグレード
- もはや最低JDK 8、JDK 9のサポートは、Javaの6と7をサポートしていません
依存コンポーネントのアップグレード
- 春春のフレームワーク5上に構築されたブート2.0、だけでなく、サードパーティのコンポーネントへの依存の一部をアップグレードします:
- 桟橋9.4
- Tomcatの8.5
- フライウェイ5
- 5.2を休止
- Gradleの3.4
- Thymeleaf 3.0
デフォルトのソフトウェアと最適化を交換してください
- HikariCP:HikariCPへの切り替えからTomcatのデフォルトの接続プールは、HikariCPは、高性能JDBC接続プールで
- OAuth 2.0の:春ブーツ2.0春のセキュリティのOAuthプロジェクトは、春のセキュリティに移行します。もはや別の依存関係は、顧客のOAuth 2.0春のセキュリティ5側のサポートを提供しません。
- Redisのデフォルトレタス
テスト
- テストの春ブーツ2.0は、いくつかの追加や調整を行いました。
- @WebFluxTestコメントは新しい「スライス」テストWebFluxアプリケーションをサポートするために追加されました。
- コンバータとGenericConverter豆が自動的@WebMvcTestと@WebFluxTestをスキャンします。
- @AutoConfigureWebTestClientこのコメントは自動的に@WebFluxTestテストに適用されますが、テストのためにWebTestClientに追加されました。
- 新しいApplicationContextRunnerテストユーティリティを追加し、あなたは簡単に私たちはこの新しいモデルのための内部テストスイートのほとんどを移動した、自動設定をテストすることができます。
新技術の導入
- HTTP / 2をサポート
- ネッティー組み込みサーバー
- Kotlinのサポート
- JOOQサポート
- サポートクォーツ
- リアクティブプログラミング
二、こんにちは世界
springboot-デモ:springbootエンジニアリングツールの使用を作成IDEA
pom.xml文件添加依赖
<依存>
<groupIdを> org.springframework.boot </ groupIdを>
<たartifactId>春・ブート・スターター・ウェブ</たartifactId>
</依存関係>
コントローラ書かれたコンテンツの作成HelloController
@RestController
パブリッククラスHelloController {
@RequestMapping( "/ハロー")
のパブリック文字列のhello(){
リターンの"Hello World";
}
}
起動クラスを実行します。DemoApplication
アクセスするには、ブラウザます。http:// localhost:8080 /ハロー、ページ表示のHello World。
第三に、カスタムフィルタ
スプリングブートフィルタの数を構築し、
例えば、OrderedCharacterEncodingFilter要求処理及び形質HiddenHttpMethodFilterの符号化は、また、我々のニーズに応じてフィルタをサポートするようにカスタマイズすることができます。
2番目のオプションを推奨:(二つの方法で実現カスタムフィルタ)
最初@WebFilterの使用であり、
第二はFilterRegistrationBeanを使用することである
。第二の例では
)のdoFilterは、(フィルタインタフェースを実装、1方法;
publicクラスmyFilterを実装は、フィルタ{
公共ボイドのinit(){}
公共ボイドのdoFilter(のServletRequestリクエスト、ServletResponseをServletResponseを、れるFilterChainのカテナのalberghiera){}
公共ボイドを破壊(){}
}
2、@Configurationが注釈を追加、カスタムフィルタを追加フィルタチェーン。
@Configuration
パブリッククラスWebConfiguration {
@Bean
FilterRegistrationBean filterRegistrationBean(){
=新新にFilterRegistrationBean registrationBean FilterRegistrationBean();
registrationBean.setFilter(myFilterを新新());
registrationBean.addUrlPatterns( "/ *");
registrationBean.setName( "myFilterを");
//複数のフィルタがある注文により提供することができますその特性を決定するために
registrationBean.setOrder(6);
registrationBeanを返します;
}
}
第四に、二つの方法で設定ファイルをお読みください。
中application.propertiesのカスタム設定:
demo.name = XXXXX
単一構成プロファイルからコンテンツをロードする場合:
図1は、注入注釈@value分野で使用することができます
@value( "$ {demo.name}")
プライベート文字列名;
図2は、構成要素の複数の受信主題定義
注釈@ConfigurationProperties使用(接頭辞=「デモ」)、などのクラスベースのカラム:
@Component
@ConfigurationProperties(プレフィックス= "デモ")
パブリッククラスデモ{
プライベート文字列名;
}
自動的にオブジェクトのデモプロパティに割り当てるためのプロパティの開始を表し、例えば、自動的にオブジェクトのプロパティの名前に割り当てdemo.name
第五に、カスタム構成ファイル:
1は、リソースディレクトリmy.propertiesの中にファイル作成
my.nameを=テスト
=テストをmy.password
図2に示すように、設定項目受信被写体定義
注釈@PropertySourceカテゴリを使用して(「クラスパスmy.properties」)を読み出すプロファイル
@Component
@ConfigurationProperties(接頭辞= "私")
@PropertySource( "クラスパス:my.properties")
パブリッククラスMyProperties {
プライベート文字列名;
プライベート文字列のパスワード。
//省略セッターゲッター
}