、SpringBootの背景
動的言語(Rubyの、Groovyの、スカラ座、Node.jsの)の人気が、Java開発は特に重いです:さまざまな構成、大規模な低開発効率、複雑な展開プロセスとサードパーティの技術統合は難しいです。
これらの環境では、春ブーツはされて入ってきました。それはあなたのプロジェクトのアップ、迅速に実行しているを取得するには、「設定オーバー習慣」(手動で設定する必要はありませんので、設定は、内蔵された構成の習慣に加えて、多数のプロジェクトが存在する)という概念を使用しています。別のラン(ランジャー、組み込みサーブレットコンテナ)あなたが春を使用するために使用したりすることはできませんSpringフレームワーク、春ブーツの、生産レベルのプロジェクトを作成するために使用する春ブーツは非常に簡単には非常に少ないの設定が必要です。
開発フレームワークの前の数と比較すると、春のブートに使用するだけでなく、より簡単に、そしてより安定かつ堅牢な、より機能豊富な。春ブーツ開発フレームワーク、開発をスピードアップし、生産性を向上させるだけではなく、ある意味で、プログラマの解放は、新しい技術を使用して、作業するだけでなく、パフォーマンスを向上させ、システムのシステムの安定性を広げるということができるの使用。
二、SpringBootプロフィール
春ブーツでも、設定プロセスを簡素化し、アプリケーションの機能に焦点を当てたSpringアプリケーションを簡素化するプロセスを構築し、開発するために設計され、それに基づいて、Springフレームワークで作成した新しいフレームワーク、Springアプリケーションのより多くのアジャイル開発であり、何も設定しません。サーブレットコンテナ(Tomcatの/突堤またはアンダートウ)自己実行可能JARファイルにWebアプリケーションを組み込むことができ、コマンドラインを実行することができます伝統的なコンテナにデプロイされません。それは春のすべての偉大な機能を備えていて、Springアプリケーションの開発の方法を変更する4つの主要な特徴を持っていないだけ。
- 春ブーツスターター:彼は、共通パケット統合に依存依存関係に組み込み、その1時間がアイテムやGradleのMavenの建設に追加することができます。
- 自動構成:SpringBoot自動設定機能は、アプリケーションがその豆と自動化を設定する必要があると考えるのが妥当条件付きサポートSpring4構成を利用します。
- コマンドラインインタフェース(コマンドライン・インタフェース、CLI):SpringBootはさらにSpringアプリケーションの開発を簡素化するために自動設定と組み合わせCLI Groovyのプログラミング言語の利点を果たしています。
- Actuatir:それはSpringBootに、特定のアプリケーション管理機能が追加されています。
無意識のうちに非常に高度で洗練された技術を使用して、春ブーツは、完全な統合を提供し、いくつかのサードパーティの技術を使用して、あなたは、単に使用しています。
三、SpringBootの利点
- 大幅に開発の効率を向上させ、設定以上の習慣、より簡単にコーディングしますSpringBoot。
- (スターターの達人で指定された)構成シンプル、ミニマル依存コンポーネント、自動検出及び組立を行うSpringBoot。
- 展開を容易にSpringBoot、SpringBootはSpringBootの開始と、現在のプロジェクトの形成に埋め込まれ、自動的にTomcat /突堤サーバー、サービスを提供するために、一緒にTomcatは、SpringBootは、コンパイル時、戦争はもはや利用可能なパッケージですが、Javaで標準のjarパッケージ、我々はコマンドが自動展開を経て完成することができ、それが1台のまたは1000サーバーであるかどうか、自動的にスクリプトによって開始されたサーバー、サーバーへのパッケージの一括アップロードをJARファイルにまとめることができ、
- 簡単に、SpringBootは、ランタイムアプリケーションの監視(サーバ上の圧力、メモリ使用量、データベースの負荷)を提供し、バックグラウンドでアプリケーション、早期予防のダウンタイムの動作を監視することができます監視しますSpringBoot。
- クラウドコンピューティングと分散アーキテクチャの自然な統合。
- 学習コストが非常に低いです。
四、SpringBoot環境を構築します
1、Gradleのプロジェクトを作成します
わずかに
2、およびコンフィギュレーション・ファイルの依存関係に導入build.gradle
buildDir = '標的'は
プラグインを適用する: 'org.springframework.boot'は
'io.spring.dependency管理':プラグイン適用
buildscript {
EXT {
springBootVersion = '2.1.6.RELEASE'
}
リポジトリ{
達人{
URL「HTTPS:/を/plugins.gradle.org/m2/」
}
}
依存関係{
クラスパス( "org.springframework.boot:スプリングブートのGradle-プラグイン:$ {springBootVersion}")
}
}
sourceSets.main.resources {
IF(project.hasProperty ( 'プロファイル')){
SRCDIR 'SRC /リソース- /メイン' + project.profile
SRCDIR 'SRC /テスト/リソース - 」+ project.profileプロファイル
}他{
SRCDIR「のsrc /メイン/リソースのテスト」
SRCDIR 'SRC /テスト/リソース試験'
}
}
clean.doLast {
projectDir.path + '/ターゲット'を削除
}
構成{
}
依存関係{
実装( 'org.springframework.boot:スプリングブートスタータウェブ「)
実装(」org.springframework.boot:スプリングブートデベロッパーツール「)
実装(」org.springframework.boot:スプリングブートスタータAOP「)
testImplementation(」org.springframework.boot:スプリングブートスタータ-test ')
}
閉ループのコンテンツの依存性プロファイルは、依存関係を導入し、
3.エントリークラスを作成します。
@SpringBootApplication @EnableScheduling パブリック クラスアプリケーション{ 公共 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(応用クラス、引数)。 } }
@SpringBootApplication
@EnableScheduling
図4に示すように、コントローラを作成します
@RestController @RequestMapping( "/ピング" ) のパブリック クラスPingController { / ** *自定义配置 * / @value( "$ {}情報" ) のプライベート文字列の情報を、 @RequestMapping(パス = "/ 111"、メソッド= RequestMethod.GET) パブリック文字列ping1(整数ID、文字列名、整数年齢){ するSystem.out.println( "ユーザ情報" + ID + "" +名+ "" + 年齢)。 リターン +「ピンポン」の情報を。 } @RequestMapping(パス = "/ 222" 、 方法 ={RequestMethod.POST、RequestMethod.GET} // "アプリケーション/ JSON;のcharset = UTF-8" =消費MediaType.APPLICATION_JSON_UTF8_VALUE) パブリック文字列ping2(){ リターン "ピンポン" + 情報を、 } @RequestMapping(パス = "/ 333" 、 メソッド = {RequestMethod.POST、RequestMethod.GET}) パブリックRetMsgのping3(ユーザユーザ){ するSystem.out.println( "ユーザ=" + ユーザ)。 返すRetMsg.buildSuccessを(); } }
@value
@RestController
@RequestMapping( "/ピング")
5、Applicationクラスを開始
アプリケーションメイン直接操作クラス()メソッド
その上、時間、デフォルトのポートとを開始し、我々はツールは、結果を見てGETリクエストを送信します。同様に、コンソールの起動ログは、いくつかのスタートアップ情報を表示し印刷します:
五、application.yml設定
我々は通常、application.yml使う最初の記録にいくつかの一般的な構成を以下、application.ymlとapplication.properties:SpringBootは、2つのプロファイルをサポートしています
サーバー: PROT: 8888 #設定ポートへのアクセスを サーブレット: コンテキスト -path:/ XXX #1 の構成項目名へのアクセス 春: デベロッパーツール: 再起動: 有効:trueに #これは、ホットロードされるようですが、毎回コードへの変更があるが自動的に再起動し、オリジナルの再起動クラスローダを伴うので、迅速な再起動時間を実現するために、クラスに比べてロードする必要性を少なくし、再起動ClassLoaderを再作成し、削除されます。 データソース: URL:JDBC:MySQLの: trueに// localhostを:? 3306 / XXX useUnicode&characterEncoding = = = UTF-8&useSslオプションをtrueに #の構成データベースへのパス 、ユーザ名:ルート #のデータベースのログイン パスワード:ルート #のログインパスワードの 種類:com.alibaba.druidを.pool.DruidDataSource #これはhttps://blog.csdn.net/qq_27191423/article/details/79146855見ることができ driver- クラス - はcom.mysql.jdbc.Driverの:名 フィルタ:STAT :MAXACTIVE 20 #のと同時に、接続プールの最大値を、することができますプールから割り当てられた接続の最大数は、0無制限 INITIALSIZE :. 1 #初期値は、接続プールの初期値を接続するときに作成される接続の数は開始 MAXWAIT:60000 minIdle: 1つの #アイドル接続の最小数をアイドル値が弁未満である場合。接続プールに適用する値、数に予め接続されますので、ピーク時に適用する時間がない timeBetweenEvictionRunsMillis:60000 minEvictableIdleTimeMillis: 300000 validationQuery:選択して「X 」 testWhileIdleを:trueに testOnBorrow:falseに testOnReturn:falseに poolPreparedStatements:trueに #のPreparedStatementキャッシュするかどうかプール管理文が作成されているかどうか(ブール)、 20は次のとおりです。maxOpenPreparedStatements :ジャクソンが DATEの -format:YYYY-MM-はMM:SS HH ddは 時間 -zone:GMT + 8 MyBatisのを - PLUS: マッパー -locations:CLASSPATH *:マッパー/ ** / * Mapper.xml #エンティティスキャン、コンマまたはセミコロンで区切られた複数のパッケージ typeAliasesPackage:。com.yudao.platform.entity * グローバル - 設定: #プライマリキータイプ0 : "データベースID増分"、1: "ユーザーIDを入力"、2: "グローバルユニークID(一意のID番号のタイプ)" 3: "グローバルUUID一意ID"; ID- タイプ:0 #フィールド0ポリシー: "分析"は、1:"無視非NULL決意「)、2:「非空の判断」 戦略・フィールドで,: 2 #こぶは、変換されたアンダー DB-、カラム・下線を:偽 #のリフレッシュマッパーは、アーティファクト試運転 更新- マッパーを:trueに #のデータベース下線大文字変換#の資本-MODE:trueに#のシーケンスのシリアルインタフェースクラスコンフィギュレーション#キージェネレータ:COM .baomidou.mybatisplus.incrementer.OracleKeyGenerator #の墓石・コンフィギュレーション・ ロジック・削除-値:1つの ロジック - ない -delete- 値:0 #はカスタムポリシーインターフェイス埋める#のメタオブジェクト・ハンドラーを:com.baomidou.springboot.xxx #カスタムSQLインジェクタ# SQL-インジェクター:com.baomidou.mybatisplus.mapper.LogicSqlInjectorの 設定: マップ -underscoreツーcamel- ケース:真の キャッシュ - 有効:偽 コール -settersオンヌル:真
私たちは、Tomcatのポートは9000として装備されていますし、再度開始するには、スプリング・ブート後に/とパスを投影します
ポートとパス送信要求に若干の変更が必要です
シックス・一般的に使用される機能
1、定期的なタスク
2、ホットデプロイ
七、統合
1、JUnitの
2、MyBatisの