Как улучшить медлительность благодаря множеству @Inject в ManagedBean - PullRequest
0 голосов
/ 12 июня 2019

В настоящее время я делаю систему, основанную на более старой системе. Старая система в основном разделяет модули на отдельные классы и компоненты. Однако для новой системы многие модули сжаты в один bean-компонент, который вводит так много классов и других bean-компонентов, что делает его очень медленным, поскольку требуется инициализация всех внедренных bean-компонентов и классов.

Есть ли способы, которыми я могу улучшить это? Есть ли что-то вроде условных инъекций, когда мы называем класс только тогда, когда нам это нужно?

В настоящее время я имею в виду, что классы следует вызывать только при необходимости. Например. когда пользователь хочет получить доступ к объектам пользователя, вводятся только связанные с ним компоненты и классы. Классы и компоненты, связанные с классами Employer, не будут вызываться. Я не уверен, возможно ли это или нет, если нет, есть ли способы улучшить производительность за счет нескольких инъекций?

1 Ответ

0 голосов
/ 19 июня 2019

Исправлено с помощью интерфейса Instance.Вместо

@Inject
MyManagedBean myManagedBean

я использовал Instance для внедрения классов только тогда, когда он используется как

@Inject
Instance<MyManagedBean> myManagedBean

Так что, каждый раз, когда вы хотите вызвать класс, вы вызываете его.get () (например, myManagedBean.get ()), и это будет инициализировать класс.Пока .get () не вызывается, классы не будут инициализированы.

...