【发布时间】:2012-10-18 22:16:15
【问题描述】:
来自 Spring 的普通旧 DI,在使用 CDI 编写时,我无法弄清楚如何正确选择范围。
在 Spring 中,默认情况下我的所有服务都具有单例范围,我想它映射到 CDI 中的应用程序范围(甚至是 @Singleton)。我知道例如登录用户信息我需要使用会话范围,例如表单参数我需要请求范围。
假设我有一个隐藏外部服务 API 调用的 bean。它是完全无国籍的。我应该把它写成@Singleton 还是只是应用程序范围?或者让它在每个请求上创建(可能是错误的选择)。
到处注入所有东西是否正确?在 Spring 中,我通过 new 创建我的数据对象。我应该在 CDI 中做同样的事情,还是干脆 @Inject 他们?
【问题讨论】:
标签: java jakarta-ee dependency-injection java-ee-6 cdi