Springフレームワークは何をしますか?
Springは今日と同じように、シンプルなフレームワークとして知られていましたが、完全なエコシステムです。
春のエコシステムでカバーされるトピック:
エコシステムの全容については、こちらをご覧ください。プロジェクトをチェリーピックすることは可能です。そのため、DI 用のGoogle GuiceやSpring Securityなどを使用して、セキュリティ関連のことを処理できます。生態系全体に投資する必要はありません。
今日、Spring-framework自体は主に
ソースspring.io
一般に、Springはコードに実装されたパターンとプラクティスのコレクションであり、アプリケーション開発サイクルの改善または高速化に役立つと言えます。
それ(コアフレームワーク)で最も有名なのは、依存性注入の分野の機能です。Spring自体には、コントロールコンテナの反転または短いIoCコンテナと呼ばれるもの、またはさらに短いコンテナ(「スプリング」が同義語として使用されることがある)があります。
依存性注入とは何ですか?
依存性注入とは、オブジェクトが外部化されたメカニズムを介して他のオブジェクトへのすべての依存性を受け取ることを意味します。
車があるとしましょう。典型的な方法は、次のとおりです。
public class Car {
Engine e;
public Car() {
e = new Engine();
}
}
車オブジェクトはエンジンに依存しています。エンジンは自動車のメンバーとして実装されているため、たとえばテストエンジン用に交換することはできません。
今の依存性の注入は、場に出ました。
public class Car {
Engine e;
public Car(Engine e) {
this.e = e;
}
}
その後、エンジンを切り替えることができます。上記の内容は、コンストラクターインジェクションと呼ばれます。setter -injectionやmethod -injection などの他のタイプがあります。Springはこれに関してどのように役立ちますか?Springでは、コンポーネントに注釈を付けてマークし、注入された@Autowired
オブジェクトのワイヤリングを自動的に行います。注入するコンポーネント自体に依存関係がある可能性があります。注射剤-言わば-によってマークされます@Component
public class Car {
Engine e;
@Autowired
public Car(Engine e) {
this.e = e;
}
}
しかし、これはSpringが提供する多くの機能の1つにすぎません。
Springを使用する必要がありますか?なぜですか?
Springはあまり邪魔にならず、多くの支援を提供するため、Springの使用を検討する必要があります。特に新しいプロジェクトの場合、Spring Bootは非常に魅力的です。start.spring.ioは使いやすいを提供していますpoint'n'click始めるためのプロジェクトテンプレートを生成する-interfaceを。curl
テンプレートを取得するために使用することもできます。
curl start.spring.io
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Initializr :: https://start.spring.io
This service generates quickstart projects that can be easily customized.
Possible customizations include a project's dependencies, Java version, and
build system or build structure. See below for further details.
The services uses a HAL based hypermedia format to expose a set of resources
to interact with. If you access this root resource requesting application/json
as media type the response will contain the following links:
+-----------------+-----------------------------------------+
| Rel | Description |
+-----------------+-----------------------------------------+
| gradle-build | Generate a Gradle build file |
| gradle-project | Generate a Gradle based project archive |
| maven-build | Generate a Maven pom.xml |
| maven-project * | Generate a Maven based project archive |
+-----------------+-----------------------------------------+
...
一方、sparkやdropwizardのようなフレームワークは、迅速なWebアプリ作成の出発点としても適しています。