LoginSignup
0
0

[SpringBoot] Beanのスコープについて

Posted at

はじめに

みなさま、SpringBootのBeanに適切なスコープを設定できておりますか?
執筆者はこの設定誤りで痛い目にあったことがあるので、戒めも兼ねてスコープについて
まとめてみます。

スコープについて

singletonスコープ
DIコンテナでインスタンスを一つ生成する
スコープアノテーションの引数を省略すればデフォルトはsingletonスコープです

requestスコープ
アクセス時に毎回インスタンス生成する

prototypeスコープ
HTTPリクエスト単位でインスタンス生成する

sessionスコープ
HTTPセッション単位でインスタンス生成する

applicationスコープ
サーブレットコンテキスト単位でインスタンス生成する

執筆者が体験したトラブル

Webシステムにて画面から指定したPDFをダウンロードする機能です。

image.png

ここでFileBeanにはスコープの設定をしておりませんでした。
上述した通り、スコープの設定をしない場合、デフォルトでシングルトンになってしまいます。

つまり何が起こったかというと、ユーザAが「発注書」をD/Lしようとすると、「見積書」がD/L
されてしまったというわけです・・・。

1トランザクションは一瞬で処理が完結するため、気づきにくいですが
皆さん気を付けていただければと思います。

参考

0
0
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
0
0