→Java関連
→JavaのWebアプリ開発
→DI(依存性注入)
Spring一般†
- Spring Frameworkで理解するDI 依存性の注入とは何か?
- DIという言葉のうち「Dependency(依存性)」という単語は、「オブジェクトが成立するために必要な要件」という意味を持っています。この要件とは、オブジェクトの持つ属性や関連するオブジェクトなどです。
- 「注入(Injection)」とは「外部からの設定(Configuration)」を意味しています。 設定ファイルやWebアプリケーションのデプロイメントディスクリプタ(web.xmlなど)での設定を「注入」と呼んでいる
- これらのことから「DI」という言葉を言い表すと「オブジェクトの成立要件に必要な情報を外部設定すること」となります。情報を外部に切り出すことで、たとえオブジェクトを利用する状況が変わったとしても、設定を変更するだけでそのオブジェクトを利用することができるようになります。つまり再利用性の高い「部品」としてオブジェクトを実装しやすくなるのです。このような再利用性の高いソフトウェア部品のことを「コンポーネント」と呼びます。
Spring Boot†
- [ChatGPT] 2023.1
- Spring Bootは、Spring Frameworkを使用して、簡単に構築できるWebアプリケーションを作成するためのフレームワークです。
- Spring Frameworkは、Javaアプリケーションを開発するための汎用的なフレームワークで、version3.0以降には、Spring Bootが含まれています。
- Spring Bootは、Spring Frameworkの機能を組み合わせ、簡単に使用できるようにしたものであり、Spring Frameworkが提供する様々な機能を組み合わせて、アプリケーションを作成するためのスターターキットという意味合いです。
- 例えば、Spring MVC、Spring Data JPA、Spring Securityなどの機能を組み合わせ、アプリケーションを開発するためのスターターを提供します。
- また、Spring Bootは、アプリケーションを起動するために必要な設定や依存関係の解決、アプリケーションの自動配置などを行うことで、開発者にとって開発をスムーズにすることができます。
DockerとSpring Boot†
Thymeleaf†
- [ChatGPT] Springの画面表示に JSP を使うか、Thymeleaf を使うかを決める基準 2023.1
- 開発者のスキル: JSPはJavaベースのテンプレートエンジンであり、Java開発者には馴染みがあります。 ThymeleafはXMLやXHTML、HTML5に対応し、JavaScriptに慣れていない開発者にも使いやすいです。
- プロジェクトの規模や要件: JSPは大規模なプロジェクトに向いています。 Thymeleafは小規模かつ静的なWebサイトなどのプロジェクトに向いています。
- パフォーマンス: JSPはサーバサイドでレンダリングされるため、高負荷なシステムには向いていません。 Thymeleafはクライアントサイドでレンダリングされるため、パフォーマンスが良いです。
- セキュリティ: JSPはJavaの構文を使用するため、セキュリティ上の問題がある可能性があります。 ThymeleafはXMLの構文を使用するため、セキュリティ上の問題が少ないです。
- 開発のスピード: JSPは開発スピードは速いですが、デバッグやトラブルシューティングが難しいです。 Thymeleafは開発スピードは遅いですが、デバッグやトラブルシューティングが容易です。
Spring MVC†
- [ChatGPT] Spring MVC と Thymeleafの関係
- Spring MVCとThymeleafは、Webアプリケーションの開発において、異なる役割を担う技術です。
- Spring MVCは、Spring Frameworkに含まれるMVC(Model-View-Controller)アーキテクチャを実現するためのフレームワークです。
- Spring MVCは、HTTPリクエストを受け取り、適切なコントローラーに処理を委譲し、その結果をビューに渡すことで、Webアプリケーションを構築するための機能を提供します。
- Spring MVCとThymeleafは、組み合わせて使用することで、Webアプリケーションの開発を効率的に行うことができます。
- Spring MVCは、HTTPリクエストを処理し、結果を渡します。その結果を元にThymeleafが、ビューを生成します。
- Thymeleafが生成したビューを、Spring MVCがクライアントに返すことで、Webアプリケーションの表示を行っています。
- Spring MVCはサーバ側のロジックを、Thymeleafはクライアント側の表示を担当する役割を持っており、それぞれがサポートしている機能を組み合わせることで、Webアプリケーションの開発を行うことができます。