ども、カロージです。
Spring Bootでよく使うアノテーション一覧をまとめました。
@SpringBootApplication
Springアプリを起動し、DIコンテナを作成する。
@Service
・対象:Class
・概要:サービスクラスに付与
@Configuration
・対象:Class
・概要:アノテーションを付与したクラスが設定ファイルとして認識される。
@Bean
・対象:Method
・概要:メソッドに付与することで、メソッドの返却オブジェクトがDIコンテナに登録される。
@Component
・対象:Class
・概要:登録するクラスにアノテーションを付与することで、DIコンテナに登録される。
@Controller
・対象:Class
・概要:フロントコントローラーモデルのコントローラーに付与する。
@Autowired
・対象:Method / Property
DIコンテナに登録されたインスタンスを「@Autowired」を付与してクラス内で定義すると
他のクラスの変数や引数にして使える。これを、オートワイヤリングと言うらしい。
例)上述の文言が分かり辛いので、色々端折っているが肝をお伝えすると以下の様な感じ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
@Service public class Hoge { public String putHoge() { return "すもも"; } } @Controller public class Fuga { @Autowired Hoge hoge; @GetMapping String getHoge() { return hoge.putHoge(); } } |
@Scope
・対象:Class
・概要:Beanのスコープを指定する。以下のスコープが指定可能。
・prototype
・request
・session
例)@Scope(“prototype”)
@Advice
・対象:Class
・概要:JoinPointで実行される横断的な処理そのものを表現する。
@Aspect
・対象:Class
・概要:複数のクラスにまたがる処理をモジュール化したもの(ロガーとか)
@Around
・対象:Method
・概要:Joinpointの前後で実行されるAdvice。実行タイミングは自身で定義でき汎用的。
@AfterReturning
・対象:Method
・概要:対象のメソッドの処理が正しく終了した場合にのみ実行されるAdvice
@Before
・対象:Method
・概要:対象のメソッドの処理前に実行されるAdvice。
@AfterThrowing
・対象:Method
・概要:対象のメソッドの処理中に例外が発生した場合にのみ実行されるAdvice。
@Repository
・対象:Method
・概要:DBアクセス処理を提供するDBアクセスパーツ
@RequestMapping
・対象:Method
・概要:クライアントからのリクエストに対してメソッドやハンドラをマッピングする。
@RequestParam
・対象:Method
・概要:URLのクエリパラメータやポストパラメータの受信
@PathVariable
・対象:Method
・概要:パスの変数を取得できる。
※余談
Bean定義とは、DIコンテナに登録するクラス(Bean)を定義すること
具体的にはメソッドで、DIコンテナに管理させたいメソッドに付与し、「Bean」を生成する。つまり、メソッド名がBean名になる。
Beanは、Singletonとして管理され、DIコンテナに1つのインスタンスのみ生成される。Bean定義の方法は以下の3パターンある。
・Javaコンフィグレーション
・アノテーションコンフィグレーション
・XMLコンフィグレーション
でわ