目指せプログラマー

アラサーが仕事辞めてプログラマーを目指す

書籍学習

こんにちは、自分が龍が如く8をやっているのを妻がずっと見ててストーリーにハマったらしくて過去作のストーリーをYouTubeでずっと見ています。

特に真島が好きらしいです。

さて、今回の学習ですが前回のFitbitと体組成計のAPIを使用したアプリの作成以降作りたいものが思い浮かばない為、前回一通り読んだ書籍を再度学習しています。

学んでいる書籍

学習内容

DI(依存性の注入)

DIコンテナにBeanを定義することで今まで直接インスタンスを生成していたものをDIコンテナを経由して取得できるようになる。

アノテーションベースConfiguration

JavaConfigクラスに@Beanで定義するのではなくDIコンテナに登録したいクラスに指定のアノテーションを付与することで登録できる(コンポーネントスキャン)。

指定アノテーション

  • @Contriller
  • @Service
  • @Reposiroty
  • @Component
コンフィギュレーションクラス    
@Configuration
@ComponentScan
public class AppConfig {
}
Beanクラス    
@Component
public class Bean {
}
インジェクションの種類
  • セッターインジェクション
  • コンストラクタインジェクション
  • フィールドインジェクション
@Autowired

付与することで自動でインジェクションされる。

@Qualifier("Bean名")を付与することでインジェクションされるBeanを指定できる。

@Primaryを付与するとデフォルトでインジェクションされるBeanを指定できる。

@Component
public class Bean {
 @Autowired
 Test test 自動でインジェクションされる
}
@Scope

Beanクラスに@Scope("スコープ種類")を付与するとBeanのスコープを設定できる。

@Lookup

異なるスコープのインジェクションの場合、インジェクション先のスコープに寄せられてしまう為、別途メソッドを定義して利用する。

サブクラスを作ってメソッドをオーバーライドするらしいのですが意味がわかりません。。。

そういうものととりあえず思っておきます。

@Lookup
Lookupbean lookupBean() {
 return null;
}

振り返ってみて

一通り読んではいるけど理解していないことが多いと感じました。

なにか作るもののアイデアがわかないときはこの本で学習をしていきます。