来自 Spring 的普通旧 DI,我无法弄清楚在使用 CDI 编写时如何正确选择范围。
在 Spring 中,默认情况下我的所有服务都具有单例范围,我想它映射到 CDI 中的应用程序范围(甚至是 @Singleton)。我知道例如登录用户信息我需要使用会话范围,例如表单参数我需要请求范围。
假设我有一个隐藏外部服务 API 调用的 bean。它是完全无国籍的。我应该把它作为@Singleton
或简单的应用程序范围?或者让它在每个请求上创建(可能是错误的选择)。
到处注入所有东西是否正确?在 Spring 中,我通过new
. 我应该在 CDI 中做同样的事情还是干脆在@Inject
他们身上做同样的事情?