【发布时间】:2018-03-28 08:35:47
【问题描述】:
我有几个这样的服务:
@Singleton
public SimpleService {
...
}
我有 Managed Bean @ViewScoped 应该创建一些复杂的对象。这些对象应该执行业务逻辑。我需要将这些服务传递给这个对象。
托管 Bean 示例:
@ManagedBean
@ViewScoped
public class ExampleBean {
@Inject
private SimpleService simpleService;
...
public void customLogic() {
// in this method I should create complex object which should have services and some data.
// current implementation
ComplexObject object = new ComplexObject(SimpleService simpleService, ...)
}
}
服务通过@Inject 注解注入到Managed Bean。为了创建这些对象 - 我正在使用构造函数并将这些服务作为参数传递。问题是:我能有比在构造函数中传递服务更好的解决方案吗?
【问题讨论】:
-
在 IoC 环境中,您必须将数据与服务分离。你需要有
build你的数据的可注入组件。 -
不清楚你是如何使用你的注入的,你能把那部分代码贴出来吗?
-
@maress,谢谢,将审查我创建可注射组件的逻辑
-
@prmottajr 用于向托管 Bean 注入服务,我有以下代码:ManagedBean public class ManagedBean {Inject SimpleService service;}
-
@Трубецкой 使用注入应该足够了,这就是使用 CDI 的重点,如果您可以编辑问题并添加您正在使用的代码,您不需要将这些对象传递给构造函数传递参数会有所帮助。
标签: java jakarta-ee cdi