#author("2023-09-22T23:26:53+09:00","default:irrp","irrp")
#author("2024-05-01T10:53:11+09:00","default:irrp","irrp")
→Java関連

→JavaのWebアプリ開発

→DI(依存性注入)

#contents

*サブトピック [#waec047f]
-Spring Boot関連


*Spring一般 [#n46fb256]
-[[Spring AI を触ってみる(Chat Completion 編) - TECHSCORE BLOG>https://blog.techscore.com/entry/2024/05/01/080000]] 2024.4
-[[Spring AI に入門する - エキサイト TechBlog.>https://tech.excite.co.jp/entry/2024/04/22/104659]] 2024.4


-[[Java17 / Spring Boot2 を Java21 / Spring Boot3 にアップデートした話 - エキサイト TechBlog.>https://tech.excite.co.jp/entry/2024/03/04/151822]] 2024.3

-[[Spring Expression Language(SpEL)ではできないことに抗ってみた〜ラムダ式書きたい!複数ステップ書きたい! | 豆蔵デベロッパーサイト>https://developer.mamezou-tech.com/blogs/2023/09/22/spel-more-useful/]] 2023.9

-[[VSCodeでSpring Boot立ち上げ | 株式会社i-Vinci>https://www.i-vinci.co.jp/techblog/1074]] 2023

-[[Spring Framework 「repo.springsource.org」の廃止 - Crooooberテックブログ>https://tech.croooober.co.jp/entry/2023/02/22/193039]] 2023.2

-[[Spring Framework 6の新機能「HTTP Interface」を使ってRESTクライアントを作成してみた - 弥生開発者ブログ>https://tech-blog.yayoi-kk.co.jp/entry/2023/01/17/110000]] 2023.1

-[[50 Free Spring Framework Practice Questions for Java Programmers | by javinpaul | Javarevisited | Jan, 2023 | Medium>https://medium.com/javarevisited/50-free-spring-framework-practice-questions-for-java-programmers-80e6f330fa07]] 2023.1

-[[令和時代に「Spring入門」「Spring徹底入門」を読むとき気をつけるべきN個のこと - Qiita>https://qiita.com/suke_masa/items/392976749fce94a8ef1f]] 2019

-[[OpenAPI Generatorを使って、Spring Web MVCのエンドポイントを生成する - CLOVER🍀>https://kazuhira-r.hatenablog.com/entry/2022/12/21/001342]] 2022.12

-[[既存のJavaクラスの一部をKotlinへ移行するにはどうする?? - Uzabase for Engineers>https://tech.uzabase.com/entry/2022/11/11/145922]] 2022.11

-[[Spring Batch × Spring Integration(Spring Batch Integration)を試す - CLOVER🍀>https://kazuhira-r.hatenablog.com/entry/2022/05/20/015828]] 2022.5

-[[Spring FrameworkとSpring Bootのいろんな対応表 - Qiita>https://qiita.com/gate9/items/7351557829d7e1e668e9]] 2022





*入門記事 [#x713c279]
-[[プロになるためのSpring上級知識 #jsug | ドクセル>https://www.docswell.com/s/MasatoshiTada/K1XMLK-advanced-spring-for-professionals]] 2023.11

-[[初めてのひとのためのSpring/Spring Boot #jjug | ドクセル>https://www.docswell.com/s/MasatoshiTada/5Q4EMZ-spring-101]] 2023.11

-[[[速習] Spring 第1回 ソフトウェアのプロフェッショナルへの道 (Springの魅力/Webアプリケーションの基本) - Qiita>https://qiita.com/ShigemoriMasato/items/c0e015098730d93a188b]] 2023.7
-[[[速習] Spring 第2回 ソフトウェアのプロフェッショナルへの道 (SpringにおけるDI/SpringにおけるAOP) - Qiita>https://qiita.com/ShigemoriMasato/items/754363ffd4335251c438]] 2023.7

-[[「プロになるためのSpring入門」を読んだ | 豆蔵デベロッパーサイト>https://developer.mamezou-tech.com/blogs/2023/07/07/prospring/]] 2023.7
--[[【書籍】プロになるためのSpring入門ーーゼロからの開発力養成講座>https://amzn.to/3rhNSAS]]


-[[令和時代に「Spring入門」「Spring徹底入門」を読むとき気をつけるべきN個のこと>https://qiita.com/suke_masa/items/392976749fce94a8ef1f]] 2020.10
--JDKは8以上を使うべし
--フィールドインジェクションではなくコンストラクタインジェクション+ @Autowired 省略で書くべし
--@RequestMapping ではなく @GetMapping などを使うべし
--Thymeleaf 3を使いHTML形式で書くべし(not XHTML)
--WebMvcConfigurerAdapter クラスではなく WebMvcConfigurer インタフェースを使うべし
--Hibernate Validatorの @NotBlank ではなく、Bean Validationの @NotBlank を使うべし
--Spring Dataの CrudRepository に互換性が無いので注意すべし
--Spring Securityの PasswordEncoder は必ず明示的に設定すべし
--Spring Bootの内容はだいぶ変わっているので注意すべし
--(2022-06-16追記) Spring Securityの WebSecurityConfigurerAdapter が非推奨になった

-[[Spring Frameworkで理解するDI 依存性の注入とは何か?>http://www.atmarkit.co.jp/fjava/rensai3/springdi01/springdi01_1.html]]
--DIという言葉のうち「Dependency(依存性)」という単語は、「オブジェクトが成立するために必要な要件」という意味を持っています。この要件とは、オブジェクトの持つ属性や関連するオブジェクトなどです。
--「注入(Injection)」とは「外部からの設定(Configuration)」を意味しています。 設定ファイルやWebアプリケーションのデプロイメントディスクリプタ(web.xmlなど)での設定を「注入」と呼んでいる
--これらのことから「DI」という言葉を言い表すと「オブジェクトの成立要件に必要な情報を外部設定すること」となります。情報を外部に切り出すことで、たとえオブジェクトを利用する状況が変わったとしても、設定を変更するだけでそのオブジェクトを利用することができるようになります。つまり再利用性の高い「部品」としてオブジェクトを実装しやすくなるのです。このような再利用性の高いソフトウェア部品のことを「コンポーネント」と呼びます。

-[[図解で学ぶ Spring MVC / Architecture of Spring MVC - Speaker Deck>https://speakerdeck.com/otty375/architecture-of-spring-mvc]] 2019

-[[【関連書籍】Spring 徹底入門>https://amzn.to/3Is0xY1]]



*公式 [#db542964]
-[[Spring リファレンスドキュメント - Java フレームワーク>https://spring.pleiades.io/]] 


-[[Spring Framework Documentation>https://docs.spring.io/spring-framework/docs/current/reference/html/]] 
-[[Spring · GitHub>https://github.com/spring-projects]] 



*Spring Batch [#hf664124]
-[[バッチは地味だが役に立つ | PPT>https://www.slideshare.net/apkiban/ss-122881217]] 2023.11
--Spring Batch/Terrasoluna FW

-[[今こそ知りたいSpring Batch(Spring Fest 2020講演資料) | PPT>https://www.slideshare.net/nttdata-tech/spring-fest-2020-spring-batch-nttdata]] 2023.11
-[[Spring Batch × Spring Integration(Spring Batch Integration)を試す - CLOVER🍀>https://kazuhira-r.hatenablog.com/entry/2022/05/20/015828]] 2022.5



*Thymeleaf [#j4c80e40]
-[[Thymeleafでハイパーリンクを実装する - エキサイト TechBlog.>https://tech.excite.co.jp/entry/2024/04/22/101655]] 2024.4

-[[Thymeleafで動的なonclickを書きたい - Qiita>https://qiita.com/Hamoto/items/4e283abbbf8d27d177e1]] 2023.2

-[[Tutorial: Using Thymeleaf (ja)>https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf_ja.html]] 2018

-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 [#za81d751]
-[[今更SpringFrameworkのRequestScopeの挙動を確認してみる #SpringBoot - Qiita>https://qiita.com/2m1tsu3/items/4bdbbc2702dfdd3c86ec]] 2023.12

-[[図解で学ぶ Spring MVC / Architecture of Spring MVC - Speaker Deck>https://speakerdeck.com/otty375/architecture-of-spring-mvc]] 2023.11

-Spring MVC と Thymeleafの関係
--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アプリケーションの開発を行うことができます。


*Spring を学ぶ順序 [#idfcbc78]
-Spring Frameworkを学ぶときには、以下の順番で学ぶとよいらしい
 1.Spring Core の基本的な機能 - DI (Dependency Injection) や BeanFactory など
 2.Spring MVC の使用方法 - コントローラー、ビューなど、Webアプリケーションの開発に必要な機能
 3.Spring Data の使用方法 - データベースアクセスに必要な機能
 4.Spring Security の使用方法 - アプリケーションのセキュリティに必要な機能
 5.Spring Boot の使用方法 - Spring Frameworkを使用したアプリケーションの開発を簡単にするための機能

-Spring MVCを学ぶ際に、Thymeleafを使用したビューの作成方法を学ぶことができます。
-その為、Spring MVCを学ぶ際にThymeleafを一緒に学ぶのが適していると言えます。
-また、Spring Bootを使用する場合には、ThymeleafがSpring Bootに組み込まれているため、Spring Bootアプリケーションの開発時にThymeleafを使用することができます。


*STS(Spring Tool Suite) [#q3dc7242]

-[[Spring | Tools>https://spring.io/tools]] 2023
--Spring Tools 4 is the next generation of Spring tooling for your favorite coding environment. Largely rebuilt from scratch, it provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE.


*Spring DI [#dc496011]
→DI(依存性注入)

→オブジェクト指向

-[[今こそ知りたいSpring DI x AOP #jsug | ドクセル>https://www.docswell.com/s/MasatoshiTada/Z818E5-spring-di-aop-for-every-developers]] 2023.11


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS