明日会社がなくなっても

明日会社がなくなっていても動揺しないように、情報を残していきたい

10/3-10/10 学習日記

Spring Bootを使い始めたので、それ関係の内容です。

lombok

  • @AllArgsConstructor:引数を使ったコンストラクタ

  • @NoArgsConstructor:引数なしのコンストラクタ

  • inner classに@Dataを付けた場合は?正しく動かない?

Maven

  • pom.xmlにバージョンを記述しない場合の動きは?
  • WebJars: クライアントライブラリをMavenなどで管理できるようにした仕組み
    WebJars - Web Libraries in Jars

Spring

  • OGNL(Object-Graph Navigation Language)式:Javaの値にアクセスするための式言語
  • OGNL式で取得したURLクエリは配列形式。${param.id[0]}
  • MyBatisを使う方法
  • TransactionMnager
  • Spring BootでFilterを追加する方法。FilterRegistrationBeanを使えばよいらしい。 java - How to add a filter class in Spring Boot? - Stack Overflow

その他


『改訂新版 Spring入門』の読書

gihyo.jp

気になった文章

最悪なパターンは、ビジネスロジックス層に含まれる複数のクラスがjava.sql.Connectionを扱い、トランザクション管理を行うものだ。

P29 1.2.5.2章 引用

なお、MyBatisを好むのは日本だけのようで、海外のエンジニアにMyBatisを使っていると言うとたいてい驚かれる

P30 注釈 引用

1章

  • Objec→Relation Mapping: オブジェクト指向分析でエンティティを抽出
  • Relation→Object Mapping: システムのデータ分析をDOA(Data Oriented Approach)などで行う

ROマッピングで、かつテーブル構造が複雑であればSpring JDBCのように直接SQLを利用することも考えよう P30 1.2.6.3章

  • 「偉いほうがインターフェースを持つ原則」by トム・エンゲルバーク
  • 設計する上でレイヤは増やすよりも、減らす方が簡単 (1.2.6.4章)

2章

クラスからnew演算子が消えたということは開発者がFactoryMethodなどのデザインパターンを駆使しなくても、DIコンテナから受け渡されるインスタンスをインターフェースで受け取れば、インターフェースベースのコンポーネント化が実現できるわけだ。

P48 2.1.1章 引用

  • @Autowiredはpublic setterメソッドがなくても、インジェクションされる。

  • @Autowiredでインジェクション可能なクラスが複数存在したら、エラーになる。

    • @Qualifierでクラス名を指定すれば、解決
  • @Componentでなく、それを拡張したアノテーション@Controller@Serviceなどを使うべき。(P60 参考)

  • @Scopevalue

  • applicationContext.xml<util:properties>で、プロパティファイルを読み込める。

用語

疑問

TODO