【Java】尝试学习SpringBoot
首先
你好。前不久参加了某家公司的研讨会,得知他们在使用SpringBoot框架,引起了我的兴趣,所以我决定学习一下。为了复习和备忘,我打算把这些知识记录在文章中。
本次内容将涉及概念性的内容。
Spring框架是什么东西?
在介绍SpringBoot之前,我先解释一下Spring Framework。
◆ 关于SpringFramework的内容
-
- Javaの世界では老舗とも言えるフレームワーク
-
- DI(依存性注入)を実現するためのもの
- DIをベースに様々な機能を実装して「 統合フレームワーク 」に成長
◆ Spring框架中的”DI”是什么意思?
-
- Dependency Injection(依存性注入)
- オブジェクト間の依存関係を、オブジェクト内のコードに記述せず、 実行時に外部から呼び出す手法
◆ 由许多框架构成
SpringFramework是一组多个框架的集合体。其中一些著名的框架包括SpringMVC,SpringRoo,以及SpringBoot。
- SpringMVC:Model-View-Controllerアーキテクチャーによる開発
-
- SpringRoo:Spring MVCを補完するライブラリとして登場
コードの自動生成機能ライブラリ
簡単なコマンドを実行するだけで、アプリケーションの枠組みが自動的にできあがるらしい(Railsみたいなイメージ)
SpringBoot
◆ 春季引导诞生
之前所解释的SpringMVC和SpringRoo似乎都非常方便而且好用,但也存在一些问题。SpringMVC需要准确地组合许多Spring系列的库,环境配置也很复杂。SpringRoo虽然在一定程度上可以自动化,但还是相当困难。。
所以,SpringBoot出现了!
SpringBoot是一个快速构建最佳Web应用程序开发的起始工具库。可以说Spring Boot是“Spring MVC的完美形态”。
【SpringBoot 特点】
-
- 専用のスターターライブラリを設定ファイルに記述するだけで、 一通りのライブラリの読み込み、環境構築が可能
- データベースアクセスなどの機能をほとんど自動化
Spring Boot的优点
在Java世界中,已经涌现出许多高效且能够实现快速开发的框架,被称为“Rails风格”。然而,选择使用Spring Boot的原因是什么呢?
在这里,我将介绍Spring Boot的五个优点。
① 没有繁琐的XML配置文件描述
过去的Java EE开发是充斥着XML配置文件,输入繁琐,错误定位困难等问题不容忽视。
SpringBoot 减少了 XML 配置文件的编写量,具体包括以下内容:
Auto-configuration: 各種設定を必要最低限の記述のみで自動設定
不足する部分はJavaConfigを追加
アノテーションによる開発
使用注释描述来减少编码量。
标注是一种通过”@ Xxx”的形式向编译器和执行环境传达Java语言功能无法表达或补充的信息的方式。
例如:@ before(在方法执行前调用)
标注可以分成三种不同的类型。
标记注释:在某种用途下进行标记
单一注释:可以带有数据
完整注释:可以带有多个数据
③ 内部集成服务器方式
一般情况下,通常需要为应用程序准备Apache、Tomcat等服务器,并在其上添加开发的应用程序来运行。
而相比之下,Spring Boot内置了Java服务器,可以直接启动服务器进行执行。
④ 基于DI的始终如一的实施
由于基于DI,因此SpringBoot具有简洁易懂的特点。
-
- 数多くのライブラリがあっても、基本的な設計思想は一貫している
-
- 新しいライブラリが追加されても覚え直す必要なし
- テスト時のインスタンスの差し替え可能
AOP (Aspect-Oriented Programming) => AOP(面向切面编程)
面向別的角度和方面思考,是一種叫做AOP的編程方法。
在面向对象编程时,无法将处理任务有效地分解为对象单位…该怎么办…
同一操作分散到多个对象中…糟糕透了…
有时候会遇到这种困扰(好像称为“横切关注事项”)
在这种情况下,使用AOP!将其分离成一个名为Aspect的模块。通过AOP,可以覆盖面向对象无法覆盖的部分。
⑥ STS (春季工具套件)
Spring Boot提供了框架本体和配套开发工具(STS),与一般的框架不同,Spring Boot的态度是”我们提供框架本体,你可以自由使用”。
【STS的特点】
-
- ベースは「 Eclipse 」で、Spring Framework利用のためのプラグインが追加されている
必要な処理が自動化され、コードの作成のみに注力できる
ここまで環境整備を行っているフレームワークはSpring Framework以外にはほぼ無い(らしい)
Spring Boot不是“充分条件”。
框架提供的是“Presentation Layer”部分。在MVC中,它只提供了View(屏幕)和Controller(整体控制)部分。也就是说,它仅仅是提供了一个“机制”,还需要使用其他技术。
例如,在数据库相关方面,需要使用Spring Data JPA和Spring Data MongoDB,而在界面实现方面,还会使用到一个名为模板引擎(Thymeleaf)的工具。
最后
到目前为止,我已经介绍了关于Spring Boot的内容。接下来,我将进行总结。
-
- SpringBootでは、主にSpring Frameworkのフレームワークを組み合わせて開発
-
- 複雑な設定処理の記述が必要ない
- SpringBootを使えば、従来よりも簡単に素早く Webアプリケーションを開発できる
如果您读到最后,非常感谢您的阅读!如果有任何错误之处,请您指正,我会非常高兴的!
文献引用
本次主要参考了《Spring Boot2编程入门》进行整理。该书很容易理解地为初学者提供了解释,所以对于有兴趣的人来说,请务必参考。
-
- Spring Boot2 プログラミング入門(著者:掌田 津耶乃)
-
- 初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
-
- ProEngineer「Webアプリの高速開発ならぜひ利用したい!Spring Bootとは?」
-
- Qoosky「Java アノテーションに関する基本知識」
-
- DATA INSIGHT「Thymeleafを使ったテンプレー トベースのJava Webアプリケーション開発につ いて」
-
- slideshare「20150724 spring勉強会資料」
- Marikoootaの日記「アスペクト指向」