Springの昔ながらのDIから来たので、CDIで書いているときにスコープを正しく選択する方法がわかりません。
Springでは、すべてのサービスにデフォルトでシングルトンスコープがあります。これはCDI(または@Singleton)のアプリケーションスコープにマップされると思います。たとえば、ログインしたユーザー情報については、セッションスコープを使用する必要があり、フォームパラメータについては、リクエストスコープが必要です。
外部サービスAPI呼び出しを非表示にするBeanがあるとします。完全にステートレスです。私はそれをアプリケーションスコープとして置くべきですか、@Singleton
それとも単にアプリケーションスコープにするべきですか?または、すべてのリクエストで作成されるようにします(おそらく悪いオプション)。
これはすべてをどこにでも注入するのに正しいですか?Springでは、によってデータオブジェクトを作成しますnew
。CDIでも同じことをするべきですか、それとも単に@Inject
それらを行うべきですか?