5分でSpringBootのクイックスタートに移動します
1はじめに
a)Springアプリケーション開発のフレームワークを簡素化します; b)Springテクノロジースタック全体の大規模な統合; c)J2EE開発のワンストップソリューション;
利点:
1.独立した実行中の春のプロジェクトをすばやく作成し、主流のフレームワークと統合します
2.組み込みサーブレットコンテナを使用する場合、アプリケーションをwarパッケージにパッケージ化する必要はありません。
3.スターターの自動依存関係とバージョン管理
4.開発を簡素化するための多数の自動構成。デフォルト値を変更することもできます
5.無秩序な構成XML、コード生成なし、箱から出してすぐに使用可能
6.準本番環境でのランタイムアプリケーションの監視
7.クラウドコンピューティングとの自然な統合
2.環境を構築します
A)提供されたMaven : Mavenプロファイルにラベルを付けるためにsettings.xml構成ファイルが追加されます
<profile>
<id>jdk-1.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>
b)アイデアの設定:アイデアツールでMavenを構成します
3.SpringBootは単純なプロジェクトを作成します
要求:ブラウザーはhello要求を送信し、サーバーは要求を受け入れて処理します。応答文字列Hello World
a)Mavenプロジェクト(jar)を作成します
b)SpringBoot関連の依存関係をインポートする
<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>
c)メインプログラムを作成し、SpringBootアプリケーションを起動します
//@SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
d)関連するコントローラーを作成する
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World!";
}
}
e)メインプログラムでmainメソッドを起動し、アクセスするブラウザからアドレスを入力します(サーバーは「HelloWorld!」を返します)
f)簡略化されたデプロイメント:このアプリケーションはjarパッケージとしてマークされ、java- jarコマンドで直接実行できます。
<!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
4.springBootプロジェクトの最下部に深く入ります
a)POMファイル
①親プロジェクト
<!--SpringBoot项目依赖的的父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<!--父项目再依赖的父项目如下,它是真正管理Spring Boot应用里面的所有依赖版本-->
<!--以后我们在导入依赖时,默认是不需要写版本号的(若不在dependencies里面管理的依赖,需要声明版本号)-->
<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は、すべての機能シナリオをスターター(スターター)に抽出します。これらのスターター関連シナリオのすべての依存関係をプロジェクトにインポートする必要があります。必要な機能のシーンのランチャーをインポートします。次に例を示します。
spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<!--spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;-->
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
b)メインプログラムクラス、メインエントランスクラス
//@SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
@ SpringBootApplication(Spring Boot構成クラス)
特定のクラスのSpringBootアプリケーションアノテーションは、このクラスがSpringBootのメイン構成クラスであることを示しています。SpringBootはこのクラスのmainメソッドを実行して、SpringBootアプリケーションを起動する必要があります。以下のこのアノテーションの詳細を確認してください。
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration//标注在某个类上,表示这是一个Spring Boot的配置类; @EnableAutoConfiguration//开启自动配置功能 @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { }//@SpringBootApplication注解 //------------------------------------------------------------------------ @Target({ ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration//代表配置类(全注解开发)== 配置文件 public @interface SpringBootConfiguration { }//@SpringBootConfiguration注解 //------------------------------------------------------------------------ @Target({ ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component//配置类也是容器中的一个组件 public @interface Configuration { //@Configuration注解 String value() default ""; }
@ EnableAutoConfiguration(自動構成機能を有効にします)
コンテンツを構成する必要がある前に、Spring Bootは自動構成を支援します。@ EnableAutoConfigurationはSpringBootに自動構成機能をオンにするように指示します。自動構成を有効にするには、以下の注釈の詳細を参照してください。
@AutoConfigurationPackage//自动配置包 @Import(EnableAutoConfigurationImportSelector.class)//Spring的底层注解@Import,是将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器 public @interface EnableAutoConfiguration { }
Spring Bootが起動すると、クラスパスの下のMETA-INF /spring.factoriesからEnableAutoConfigurationで指定された値を取得し、これらの値を自動構成クラスとしてコンテナーにインポートします。自動構成クラスが有効になります。自動構成作業を手伝ってください。 以前は、自分で構成する必要がありました。自動構成クラスが役に立ち(springBootの担当者がこれらのタスクを実行したと言えます)、全体的なJ2EE統合ソリューションと自動構成がすべて揃っています。
spring-boot-autoconfigure-1.5.9.RELEASE.ja
5)Spring Initializerを使用して、SpringBootプロジェクトをすばやく作成します
①IDEA:SpringInitializerを使用してプロジェクトをすばやく作成する
IDEは、Springのプロジェクト作成ウィザードを使用してSpring Bootプロジェクトをすばやく作成し、必要なモジュールを選択すると、ウィザードがインターネット上にSpring Bootプロジェクトを作成し、デフォルトで生成されたSpringBootプロジェクトをサポートします。
- 主程序已经生成好了,我们只需要我们自己的逻辑 - resources文件夹中目录结构 - static:保存所有的静态资源; js css images; - templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf); - application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;