春のブート2.1.6版
すべてのプログラマは、より多くを学ぶために私は考えることができるの行にすべてのあなたの上に現代的なステップで時にJavaプログラマの感覚を持っている必要がありタイムズ
どのような。印象的なフレームのバックエンドが安定している、彼らは技術のアップグレードを心配することなく、アプリケーション内での時間の長い期間を維持することができます。しかし、同様の
SSH、SSMは、これらのフレームワークは、あまりにも長い間、人々は代わりに、よりエレガントでシンプルなフレームワークを使用するのを待つ、それを使用することはできませんSpringBoot
生徒。
春ブーツSpringフレームワークは、Springアプリケーションの作成と開発を簡素化するために使用される新しい家族、です。春を使用して
ブーツは非常に簡単にかつ迅速にコーディングが簡単になることができますSpringフレームワーク、簡単な構成の変化に基づいてアプリケーションを構築することができ、変更は展開が簡単で、モニター
簡体。春ブーツを簡素化することができますので、開発者は、業界で非常に速いので、多くの注意となります。現在、中国の春ブーツで
トレンドに続いて、春よりも多くなってきました。
学習条件
SpringBootフレームSpringフレームワークは、フレームに基づくアプリケーションであり、フレームSpringフレームワークのアップグレードに最適化を行います
新しいフレームワークのために。どちらSpringBoot春のフレームワークは、フレームの上に構築されたので、私はあなたがSpringBoot-て喜んでいるので、勉強したいれます
Springフレームワークを習得することを考えます。
入門
春のブートの概要
Springフレームワークは強力ですが、それでも非常に単純なプロジェクトは、私たちはたくさんのことを設定する必要があります。だから、春ブーツボックスがあります
ラック、その役割は、自動的に構成された私たちを助けるために、単純です。スプリングブートコアフレームワークは自動的に限り、対応するJARパッケージが存在するように、構成されています
春は、私たちが自動的に設定するのに役立ちます。デフォルトの設定は、需要を満たしていない場合、我々はまた、私たち自身のコンフィギュレーションを使用して、自動設定クラスを置き換えることができます。
春ブーツ春は強化されますが、迅速な開発のためのSpringフレームワークを使用していません。==春ブーツを迅速に開発者を支援するために設計されています==
Springフレームワーク構造== ==スピード
使用春ブーツが簡単に別の実行(実行jarファイル、埋め込まれたサーブレットコンテナ)を作成することができ、エントリーレベルの生産ベースのSpringフレームワーク
現在、私たちは春ブーツも、少しだけ春の設定を必要とすることはできません使用します。また、春ブーツも埋め込まれたWebサービスを統合します
私たちはすぐにエンタープライズクラスのアプリケーションを構築することができ、システムの監視および他の多くの便利な機能、。
==マイクロサービスは今後の動向で、春ブーツプロジェクトはマイクロサービスの開発の基礎となるものです。==
我々は重要なポイントのSpringBootを学び、なぜこれらのビューです。
春ブーツのコア機能
独立したプロジェクトの春ラン
春のブートジャーは、Java -jar xxx.jarとして、パケット形式で直接実行することができます
利点は以下のとおりです。サーバーのリソースを節約します
組込みTomcatとJettyはコンテナ
春ブーツは、組み込みのTomcat、Jettyのを選択することができますので、私たちは戦争の形でプロジェクトパッケージを展開する必要はありません。
構成Mavenを簡単にするスタータのPOM
例えば、自動的に取り込まれ、スプリング・ブート・スターター・ウェブに導入
それは一般的にパッケージで使用、使用後のスプリング・ブート・スターター・親はスタートは、関連するMavenの依存性を提供するために使用され、特別です
ライは、バージョンラベルを保存することができます。
自動設定の春
春ブーツが、これは非常に使用することが私たちの配布を削減する、自動的にビーンバッグカテゴリをジャーに構成されたクラスパスのjarパッケージ、クラス、に基づいて行われます
ホーム。もちろんSpringBootはほとんどの開発シナリオではなく、すべてのシナリオは、我々は自動的に実際の開発場合は設定する必要が考えられ
春ブーツが満たされていない間ビーンは、あなたが自動設定をカスタマイズすることができます。
準本番アプリケーションの監視
春ブーツベースのHTTP、SSH、telnetのプロジェクト実行時の監視。
XML構成となしコード生成
新機能のspring4.xフリーのコード生成とXMLコンフィギュレーションを提供するために、注釈の春ブーツ広範な使用。spring4.xでJavaの利用を促進
置和注解配置组合,而Spring Boot不需要任何xml配置即可实现spring的所有配置。
综上我们可以得出:Spring Boot让开发变得简单,让部署变得简单,让监控变得简单,让配置变得更简单。
快速入门
Spring Boot 2.1.6.RELEASE需要Java 8,并且与Java 11兼容(包括在内)。
还需要Spring Framework 5.1.8.RELEASE或更高版本。
第一个 Spring Boot 项目
创建项目
编写 pom.xml
根据官网 Spring Boot 文档提示从 spring-boot-starter-parent
项目继承并向一个或多个 Starters
声
明依赖项。Spring starter 是 Spring Boot 的核心,可以理解为一个可拔插式的插件,例如,你想使用Reids插
件,那么可以使用 spring-boot-starter-redis;如果想使用MongoDB,可以使用 spring-boot-starter-data-
mongodb。
<!-- 引入springboot父类依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
<dependencies>
<!-- springboot-web 组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
HelloWorld
HelloWorldController.java
package com.springboot.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
// 表示该服务接口全部返回 json 格式 默认每个方法都加了 @ResponseBody
@RestController
// 表示所扫描到的服务
@EnableAutoConfiguration
public class HelloWorldController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
@RequestMapping("/getMap")
public Map<String, Object> getMap() {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("code", "200");
resultMap.put("msg", "成功");
return resultMap;
}
// 主函数运行 springboot 项目
public static void main(String[] args) {
SpringApplication.run(HelloWorldController.class, args);
}
}
结果
......
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.10.RELEASE)
......
...Registering beans for JMX exposure on startup
...Tomcat started on port(s): 8080 (http)
...Started HelloWorldController in 5.806 seconds (JVM running for 10.606)
Spring Boot 第二种启动方式
项目中肯定不止一个 Controller,我们当然希望项目启动时将所有的 Controller 全部加载进来,这种情况又
该如何配置呢?比如此时有两个 Controller,都需要被执行。
HelloWorldController.java
package com.springboot.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
@RequestMapping("/getMap")
public Map<String, Object> getMap() {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("code", "200");
resultMap.put("msg", "成功");
return resultMap;
}
}
IndexController.java
package com.springboot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class IndexController {
@RequestMapping("/index")
public String index() {
return "index";
}
}
App.java
package com.springboot.app;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
// 扫描指定包下的服务
@ComponentScan("com.springboot.controller")
// 表示所扫描到的服务
@EnableAutoConfiguration
public class App {
// 项目中不需要有多个 main 方法只需要有一个入口就可以了
public static void main(String[] args) {
// 主函数运行 springboot 项目
SpringApplication.run(App.class, args);
}
}
删除其他服务的主函数 main(),只保留一个即可。
并且删除其他服务的 @EnableAutoConfiguration
注解,只在主函数服务中添加。
通过 @ComponentScan
注解扫描你需要的服务。
启动 App.java,其他两个服务也可以访问到了。
Spring Boot 第三种启动方式
开发中,我们经常使用以下3个注解注解 main 类。
それぞれ@Configuration
、@EnableAutoConfiguration
、@ComponentScan
。これらのノートは、一般的であるため、
使用しているので、春ブーツは、統一された注釈を提供します@SpringBootApplication
。
なお:@SpringBootApplication
だけ同じレベルのパッケージでスキャンします。
異なるパッケージの下で使用することができる@SpringBootApplication
組み合わせで@EnableAutoConfiguration
、
@ComponentScan
スキャン注射。
前記@ComponentScan
有用走査豆は、注釈を介してパケットを含む特定の注釈を指定することができます。
@Component
、@Service
、@Repository
、@Controller
、@Entity
などが自動的にスプリング豆として登録されています。
App.java
package com.springboot.app;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
// 相当于 @ComponentScan("com.springboot.app") 只扫描同级包下
// 解决办法提升当前App类的包范围("com.springboot"),或者结合 @ComponentScan使用
@SpringBootApplication
// 扫描指定包下的服务
@ComponentScan("com.springboot.controller")
public class App {
// 项目中不需要有多个 main 方法只需要有一个入口就可以了
public static void main(String[] args) {
// 主函数运行 springboot 项目
SpringApplication.run(App.class, args);
}
}