許可なしに、複製してはなりません
著者:文字ジボオフ
:この記事は完全なシリーズから来てspringbootの素人シリーズ
、春ブーツ、Spring MVCの、春のコントラスト
まず、一つのことを理解する必要があります。春ブートプロジェクトの目的は春、SpringMVCを交換するが、それらは簡単にそれらを使用できるようにすることではありません。
Springフレームワーク
コアの特性はSpringフレームワークの依存性注入制御とIOC(制御の反転)のDI(依存Injecttion)反転しました。あなたは合理的にDIとIOCを使用することができれば、我々は疎結合、拡張性の優れたアプリケーションを開発することができます。
Spring MVCの
Spring MVCのは、Webアプリケーションを開発するために友好的な方法を提供します。このようディスパッチャサーブレット、のModelAndViewおよびビューリゾルバを使用することにより、簡単にWebアプリケーションを開発することができます。
春ブーツ
春とSpring MVCの最大の欠点は、構成およびこれらの構成の多くは、異なるプロジェクトで高い類似性を有することです。重複した構成、面倒で厄介になります!
春ブーツは自動設定とスターターの組み合わせによってこの問題を解決することを期待しています。また、春ブーツはまた、あなたがより迅速に本番環境で使用できるアプリケーションを構築することができ、多数の機能を提供します。
二、春ブーツ自動設定
春と春のMVCアプリケーションは、XMLやJavaビーンの設定がたくさんあります。春ブーツは、新しいソリューション、思考の新しい方法を提供し、この問題を解決するには。
思考のspringboot方法は:春にはいくつかの新しいjarファイルのパッケージを追加したとき、あなたは自動的にいくつかのBeanを構成することができ、よりインテリジェントなことができません。例えば:春MVC JARファイルが配置されているクラスパス、自動ディスパッチャサーブレット。これらの自動デフォルトの設定は、当社の要件を満たしていない場合は、当然、我々は変更することができます。
第三に、春ブーツスターターは何ですか?
春ブーツスターターセットは、第三者に依存しているライブラリのセットです。
あなたは春ブートは、スターター・ウェブが可能(例えばMavenのような)パッケージ管理ツールを使用しての導入で、Webアプリケーションを開発したいのですが、以下のライブラリの導入にそれほど依存していない場合は、春・ブート・スターター・ウェブ・タイムこれらは、次の共通のライブラリを導入するのに役立ちます。
- 春 - 春のコア、豆、コンテキストcontext、AOPアスペクト指向
- ウェブMVC - 春MVC
- ジャクソン - JSONデータのシリアル化とシリアル化トランス
- 検証 - Hibernateのパラメータ校正と検証API
- 組み込みサーブレットコンテナ - Tomcatの
- Loggingフレームワークロギング - logback、SLF4J
第四に、春ブーツスターター親は何ですか
すべての春ブーツプロジェクトのデフォルト春ブート・スターター・親親プロジェクトのアプリケーションとして。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
統一された構成のJavaのバージョンや他のいくつかの依存ライブラリのバージョン:利点は、親プロジェクトがある継承します。言い換えれば、サードパーティのライブラリの導入は、あなたは、バージョン番号、あなたのための親プロジェクト管理のバージョンを追加しますが、互換性テストの結果ではありません。よりあなただけのより良いバージョンの互換性をご紹介します。
もちろん、親プロジェクトはあなたには、いくつかの珍しい瓶を導入、または独自のバージョン番号と互換性を管理する場合は、人気のあるライブラリーのいくつかのバージョンを管理することができます!
第五に、埋め込まれたWebコンテナ
Tomcatの:ジャーパッケージラベル春ブーツは、デフォルトのWebコンテナは、組み込みが含まれています。あなたは、単にWebサービスを開始するには、次のコマンドを使用することができます。
java -jar springboot-demo.jar
これは、打ち上げ、拡張を構築するためのサービスやマイクロマイクロサービスの展開に、より助長しています。春ブーツは、Webコンテナ桟橋やアンダートウをサポートしています。
六、春データ
春データ目的は、データにアクセスするために、より優しい方法やAPIを提供することです。リレーショナルデータベースとNOSQLデータのサポートを含みます。例えば:
- 春データJPA - APIリレーショナルデータベース操作、フレンドリーで使いやすいです
- Spring Data MongoDB -MongoDB的操作API
- Spring Data REST — 从持久层Repositories自动生成服务层API,暴露 REST APIs 接口。超级好用!
当然,Spring Data还有更多好用的特性和支持等待你去探索!
七、spring boot2.x新特性
7.1.基础环境升级
- 最低 JDK 8,支持 JDK 9,不再支持 Java 6 和 7。Spring Boot 2.0 要求 Java 8 作为最低版本,许多现有的 API 已更新,以利用 Java 8 的特性。
例如,接口上的默认方法,函数回调以及新的 API,如 javax.time。 - 如果你正在使用 Java 7 或更早版本,则在开发 Spring Boot 2.0 应用程序之前,需要升级你的 JDK。
7.2.依赖组件升级
- Jetty 9.4,Jetty 是一个开源的 Servlet 容器,它为基于 Java 的 Web 内容,例如 JSP 和 Servlet 提供运行环境。Jetty 是使用 Java 语言编写的,它的 API 以一组 JAR 包的形式发布。
- Tomcat 8.5,Apache Tomcat 8.5.x 旨在取代 8.0.x,完全支持 Java 9。
- Flyway 5,Flyway 是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。用通俗的话讲,Flyway 可以像 SVN 管理不同人的代码那样,管理不同人的 SQL 脚本,从而做到数据库同步。
- Hibernate 5.2,Hibernate 是一款非常流行的 ORM 框架。
- Gradle 3.4,Spring Boot 的 Gradle 插件在很大程度上已被重写,有了重大的改进。
- Thymeleaf 3.0,Thymeleaf 3 相对于 Thymeleaf 2 有非常大的性能提升。
7.3. 默认软件替换
- 默认数据库连接池已从 Tomcat 切换到 HikariCP,HikariCP 是一个高性能的 JDBC 连接池,Hikari 是日语“光”的意思。
- redis客户端默认使用 Lettuce,替换掉Jedis。Lettuce 是一个可伸缩的线程安全的 Redis 客户端,用于同步、异步和反应使用。多个线程可以共享同一个 RedisConnection,它利用优秀 Netty NIO 框架来高效地管理多个连接,支持先进的 Redis 功能,如 Sentinel、集群、流水线、自动重新连接和 Redis 数据模型。
7.4.新技术的引入
- 响应式编程WebFlux,重要的变革,后续章节会详细展示
- 支持 Quartz。Spring Boot 1.0 并没有提供对 Quartz 的支持,之前出现了各种集成方案,Spring Boot 2.0 给出了最简单的集成方式。
- 对Kotlin 的支持
- JOOQ 的支持。JOOQ 是基于 Java 访问关系型数据库的工具包。JOOQ 既吸取了传统 ORM 操作数据的简单性和安全性,又保留了原生 SQL 的灵活性,它更像是介于 ORMS 和 JDBC 的中间层。
7.5.彩蛋
在 Spring Boot 1.0 项目中 src/main/resources 路径下新建一个 banner.txt 文件,文件中写入一些字符,启动项目时就会发现默认的 Banner 被替换了,到了 Spring Boot 2.0 现在可以支持 Gif 文件的打印,Spring Boot 2.0 在项目启动的时候,会将 Gif 图片的每一个画面,按照顺序打印在日志中,所有的画面打印完毕后,才会启动 Spring Boot 项目。
未经允许,不得转载
原作者:字母哥博客
本文完整系列出自:springboot深入浅出系列