如何在ManagedBean中使用@Inject来提高速度

时间:2019-06-12 03:32:50

标签: jboss wildfly cdi

我目前正在基于旧系统制作系统。较旧的系统基本上将模块分为单独的类和Bean。但是,对于新系统,将许多模块压缩到一个Bean中,使其注入了如此多的类,而其他Bean则使其非常缓慢,因为它需要初始化所有注入的Bean和类。

有什么办法可以改善这一点?有没有类似条件注入的东西,我们只在需要时才调用类?

目前,我要记住的是仅在需要时才调用类。例如。当用户想要访问User对象时,仅注入与用户相关的bean和类。与雇主类相关的类和bean将不会被调用。我不确定这是否可行,如果不能,是否有办法通过多次注入来提高性能?

1 个答案:

答案 0 :(得分:0)

使用实例界面修复了该问题。代替

@Inject
MyManagedBean myManagedBean

我使用Instance仅在按原样使用时注入类

@Inject
Instance<MyManagedBean> myManagedBean

所以这是做的,每次您要调用该类时,都可以通过.get()(例如myManagedBean.get())进行调用,这将初始化该类。只要不调用.get(),就不会初始化这些类。