Spring Boot的基本概念

首先

你好。
由于这次我从头开始学习了SpringBoot,所以我尽量将我学到的知识简明扼要地总结了一下。
这篇文章不会详细解释具体的实施方法,所以希望那些想要初步了解Spring Boot是什么的朋友能够充分利用。

这篇文章的目标读者

・对于刚开始学习Spring Boot的人
・对于想要了解Spring Boot的本质是什么的人
・对于理解Java概述的人

在这篇文章中所要传达的信息

・Spring Boot是什么?
・Spring Boot的特点(依赖注入(DI)和面向切面编程(AOP))

什么是Spring Boot?

首先,我們將談論一下Spring Boot,以及它是如何與Spring Framework相關聯的。

Spring Framework是什么?

在Java开发中可使用的框架集合

Spring Framework为了提高开发效率提供了各种功能,每个功能都有相应的框架。因此可以根据所要实现的系统选择使用的框架。

フレームワーク提供する機能の概要Spring MVCWebアプリケーションを簡単に作成する機能を提供Spring Dataデータアクセスに関する機能提供Spring Batchバッチ処理機能を提供Spring Security認証認可の機能を提供

※「框架」是指为了简化开发而存在的”骨架”。
通过使用框架,无需从零开始编写所有程序,可以提高开发效率。

Spring Boot是什么?

这是Spring Framework中的一个框架,旨在使Spring Framework的功能更易于使用的框架。

Spring全体像.png

由于Spring Framework提供了各种不同的框架,因此在使用这些框架时需要准备XML文件等,导致环境设置变得复杂化。

springframework違い.png

SpringBoot项目的启动方法

以下是使用eclipse(Pleiades ALL in One)创建Spring Boot项目的简单说明。

操作1.png
操作2.png
操作3.png
操作4.png
操作5.png

SpringBoot 的特点

下面将对SpringBoot(实际上是指Spring Framework)的核心功能“DI”和“AOP”进行解释。
总结来说,这两个功能都是为了“提高系统的开发效率和可维护性”。

DI。

「依赖注入」是“Dependency Injection”的缩写,翻译为“依赖性的注入”。
“依赖注入容器”负责实现这个功能。

“依赖性”是什么意思?

「依赖关系」是指一个类(即使用者)利用另一个类(即被使用者)的行为。

Java有以下两种类型的依赖关系。
在这两种依赖关系中,如果“被使用的类”发生变化,就需要修正“使用的类”。

1. 依赖于班级

在「使用类」中实例化「被使用类」并调用方法。

クラス依存.png
2. 接口依存

在使用类中,使用接口类型实例化被使用类,并调用其方法。

インターフェース依存.png

在Java中有两种依赖,”接口依赖”相比”类依赖”修正的地方较少,具有实现”低依赖”状态的优点。

然而,即使在“接口依赖”情况下,也需要对“使用方类”进行修改,并且在存在多个“使用方类”的情况下,可能会出现修改遗漏的可能性。解决这个问题的功能是依赖注入(DI)。

DI容器的作用

通过使用DI容器,可以实例化“被使用的类”并将其注入到“使用的类”中。
在“类依赖”和“接口依赖”方面,实例化是通过使用new关键字在“使用的类”中进行的,但是DI容器可以代替这个实例化过程。
生成的实例被称为“Bean”。

DIコンテナ.png

DI程序的执行

请在DI容器中生成实例,并通过给它以下的”注解”来使用该实例。

①给被使用的类添加”@Component”注解
※”@Controller”、”@Service”、”@Repository”也是用于生成实例的注解。
②在使用的类中声明一个字段来接收实例的引用,并在字段上添加”@Autowired”注解。

Spring Boot在启动时会查找被注解为”@Component”的类,并对其进行实例化。然后将这些实例注册到DI容器中,并注入到被注解为”@Autowired”的位置。

DI実装1.png

DI的优点

DI実装.png

按面向方面编程(Aspect-Oriented Programming,简称AOP)

「Aspect Oriented Programming」的缩写,翻译为「面向切面编程」。

「面向对象编程」是什么?

面向对象编程,简单来说就是一种“将共享的处理分离出来并进行统一管理的机制”的概念。

AOP概要.png

「横断的关注点」指的是不是功能的主要部分,但从质量和维护的角度来看,却是必需的内容。它涉及到数据库连接后的异常处理和日志输出处理等。

将「中心关注点」和「横断关注点」总结在一起描述时,存在以下这些缺点。

    • 処理が増えることでソースが読みづらくなる

 

    処理を入れ忘れる可能性がある

为了阻止这种情况发生,AOP的功能是将”核心关注点”和”横切关注点”分开,并统一管理”横切关注点”。

AOPイメージ.png

AOP实现的方法

在了解AOP之前,需要先介紹一些必須了解的術語。

用語意味Advice横断的関心事を実装したメソッドAspectAdviceをまとめたクラスJointPointAdviceを実行するタイミング
※メソッドの実行前・実行後などを指定できるPointCutAdviceを実行する場所(クラスやメソッド)
※「メソッド名がgetで始まるもの」といった条件を指定できる
AOP実装.png
@Before(“execution(* com.example.Controller.get*(..))”)

在`com.example.Controller`类下,执行在以`get`开头的方法之前。

AOP的好处是什么?

AOPメリット.png

文献引用

    • Spring解体新書第2版

 

    Spring Framework超入門 優しくわかるWebアプリ開発
广告
将在 10 秒后关闭
bannerAds