A、春のブートエントリ
1.Springブートプロファイル
Springアプリケーション開発のための簡素化フレームワーク
全体の技術スタックの大規模な統合を春
ワンストップソリューションのJ2EE開発
2.マイクロサービス
2014年、Martin Fowler氏
マイクロサービス:建築スタイル
小規模なサービスの集合でなければならないアプリケーションは、HTTPを介して通信することができます。
各機能要素は、独立した、最終的な代替と独立した手段のソフトウェアのアップグレードです
3.環境上の制約
-jdk1.7と1.8.0_112上記
-maven3.3 3.3.9以上
-IntelliJIDEA2017
-Spring Boot1.5.9
1.MAVENのsettings.xml
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
2.IDEA設定
Mavenのホームディレクトリ
ユーザー設定ファイル
4.SpringブートHelloword
Mavenプロジェクトを作成します。1.
2.関連依存性は、春ブーツを導入しました
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
スタートの春ブーツ:メインプログラムを書く3。
/**
* @SpringBootApplication 来标注一个主程序,说明这是一个Spring Boot应用
*/
@SpringBootApplication
public class HelloApp {
public static void main(String[] arge){
//Spring 应用启动起来
SpringApplication.run(HelloApp.class,arge);
}
}
4.書き込みのcontroler、サービス
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World";
}
}
5.テストは、メインプログラムを実行します
6.簡素化の展開
<!-- 这个插件,可将应用打包成一个可执行的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
このアプリケーションは、JARパッケージ、javaの-jarコマンドの実行を直接使用すると表示されます
5.Hello世界探検
1.POMファイル
1.親プロジェクト
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<!-- 它的父项目是 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
<!-- 它来真正管理Spring Boot应用里面的所有依赖版本 -->
春ブーツバージョン仲裁センター
私たちはインポートした後の依存は、デフォルトのバージョンを記述する必要はありません。(で政権内部で自然に依存関係を宣言する必要はありません)
2.輸入依存度
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
春・ブート・スタータウェブ:
春ボット-スターター:春ブートシーンイニシエータ、私たちはウェブアセンブリモジュールを導入するヘルプが正常に依存して動作しています
春ブーツは全てのシーンは、抽出された、唯一のプロジェクトでスターターをインポートする必要がスタータ(スターター)の数を作られています、すべてが来るインポートされ、関連するシーンによって異なります
メインプログラムの2、正面玄関クラス
/**
* @SpringBootApplication 来标注一个主程序,说明这是一个Spring Boot应用
*/
@SpringBootApplication
public class HelloApp {
public static void main(String[] arge){
//Spring 应用启动起来
SpringApplication.run(HelloApp.class,arge);
}
}
@SpringBootApplication:春ブートアプリケーションは、このクラスがSpringBootマスタークラス構成であることを示す、クラスにマークされているが、あなたがSpringBootを開始するには、アプリケーションのこのクラスのmainメソッドを実行する必要がありますSpringBoot
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan( excludeFilters = {
@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}),
@Filter( type = FilterType.CUSTOM, classes ={AutoConfigurationExcludeFilter.class})})
public @interface SpringBootApplication {
@ SpringBootConfiguration:春のブート・コンフィギュレーション・クラス:
クラスにマークされ、彼はそれがSpingBootの設定クラスと言いました
@ ザ・コンフィギュこのコメントマークアップされたコンフィギュレーション・クラス:
Configurationクラスは......プロファイル:クラスが設定コンテナです:@Component
@ EnableAutoConfiguration:自動設定機能をオンにします。
我々が設定するには、SpringBootの助けを必要とする前に、物事は、私たちが設定し、@はEnableAutoConfiguration自動設定機能を開くSpringBootを教え、このコマンドが有効に自動的になります。
@AutoConfigurationPackage
@Import({EnableAutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
@ AutoConfigurationPackage自動構成パッケージ:
@import({Registrar.class})
アセンブリに容器に導入されたスプリングの注釈@import;インポートコンポーネントRegistrar.class
ここで、全ての一次パッケージ構成のクラスのすべてのコンポーネント(@SpringBootApplicationクラスラベル)とスキャンスプリング容器内部の下部サブパケット。
@ インポート({EnableAutoConfigurationImportSelector.class})。
容器へのインポート・コンポーネント
EnableAutoConfigurationImportSelector:アセンブリセレクタを導入しました。
導入された完全なクラス名のやり方を返すために必要なすべてのコンポーネント、これらのコンポーネントがコンテナに追加されます。
このシーンは、コンテナに必要なすべてのコンポーネントをインポートし、これらのコンポーネントを設定することです。それは、クラスの多く(xxxAutoConfiguration)に付属しているコンテナ設定をインポートします。
自動コンフィギュレーション・クラスでは、手動で私たちは機能性成分を注入し、構成作業を記述する必要がなくなります。
SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class、クラスローダ)。
ブート時SpringBootは、EnableAutoConfigurationは、自動設定をコンテナにクラスとしてこれらの値は、自動的に、力に基づいて構成されたMETA-INF / spring.factoriesクラスパスから値を取得し、指定さ私たちは自動的に設定するための作業。私たちは私たちを助けるためにコンフィギュレーション、自動コンフィギュレーションクラスの前に自分に何かする必要があります。
J2EE全体的な統合ソリューションと自動設定は、ばねブート自動構成-1.5.9.RELEASE.jarです。
6.春ブーツはすぐに春Initislizerを使用してプロジェクトを作成します
IDEはすぐに春春のブートプロジェクトを使用してプロジェクトを作成する作成ウィザードをサポートしています。
ウィザード作成SpringBootプロジェクトネットワーキング、私たちに必要なモジュールを選択します。
農夫は春のブートプロジェクトを生成しました:
- メインプログラムは良い、自分のロジックを記述するだけで必要性が発生しました
- ディレクトリ構造のフォルダリソース
- 静的:保存すべての静的リソース、JS、CSSの画像;
- テンプレート:保存し、すべてのテンプレートページ;(春ブーツデフォルトのjarパッケージ組み込みTomcatを使用しては、デフォルトのJSPページをサポートしていません);あなたが使用できるテンプレートエンジンを(FreeMarkerの、thymeleaf)
- application.properties:SpringBootアプリケーション構成ファイルは、デフォルトの設定の一部を変更することができます