LoginSignup
1
5

More than 3 years have passed since last update.

初めてのSpring案件を終えたメモ ~Springとは編~

Last updated at Posted at 2020-03-30

はじめに

ピュアJavaとDBの基本知識のみスタートからのSpring案件が波乱の末ひと段落したので、所感や覚書などを。:speech_balloon:
記事の内容としてはチュートリアル以上、実践未満のイメージ。

開発環境

RedHat(開発環境はCent)7系
Java8
SpringBoot2.1.6
MySQL8系
STS

Spring Framework について

10年もののフレームワークで、大体のことができる、つまり、ごちゃごちゃしてる。
情報を入手するときは書籍にせよネットにせよ、鮮度を確認する。
特に設定に関して、XML地獄からはすでに解放され、アノテーションやapplication.propertiesに記述できることが多い。
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html

application.propertiesについて

後から知った application.yml のほうが見やすそう。
設定できるものは↓。暇なときにざっと眺めておくといい、ざっと。
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html

application.propertiesは環境によって切り替えることができる。
コマンドラインから実行するときは --spring.profiles.active
https://qiita.com/NagaokaKenichi/items/fd9b5e698776fe9b9cc4
STSから実行するときは
propatiese.PNG
奥深いので、ひねった使い方するとハマりそう。シンプルにいこう。:unamused:
https://blog.tagbangers.co.jp/ja/2019/07/12/how-spring-deals-with-properties

Springで作成するWEBシステムの構成

MVCでDIでAOPな設計を提供している。
それぞれ頭の中で構成図をイメージできるようにしておくと設計やバグ探しのとき役立つ。
リスナーやカスタムバリデーションの実装とか、テストコードの環境とかで、なるほどなぁってなる。
https://qiita.com/kazuki43zoo/items/757b557c05f548c6c5db

DIについて

結局「コントローラーとDB関連クラスはDI対象にする」くらいの理解。
@Autowiredしていたけど良くないみたい。今はコンストラクタインジェクションを使用するのが主流らしい。
https://qiita.com/jackazu/items/aead50c699fefe56c120
意識しないといけないのは、@Controller とかつけるとSpringがDI対象と判断して勝手にインスタンス化するのでnew HogeController() とかしない。nullになるので。

DI対象のインスタンスはシングルトン。
設定によって変えられるらしいけど、変えなければいけないと思ったら設計のほうを疑うべし、らしい。
コントローラーのメンバ変数にユーザの情報を保持したら別のユーザにどんどん書き換えられちゃった:laughing:

他のメモ

初めてのSpring案件を終えたメモ ~データベース編~
初めてのSpring案件を終えたメモ ~MVC編~

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5