Мне больше любопытно, является ли это лучшей практикой или ее следует избегать. Скажем, у меня есть два EJBS, каждый из которых работает с другим типом объекта, виджетами и foo. EJB, который управляет виджетами, должен получить коллекцию foos для обработки. Эта функциональность уже создана в компоненте FooManager.EJB вызывает другой метод EJB
Метод в WidgetManager создается, тогда как методы FooManager уже созданы.
Вот пример того, что я имею в виду. Это краткий пример.
@Stateless
public class FooManager implements FooManagerLocal, FooManagerRemote
{
public List<Foo> getAllFoosForAWidget(widgetId)
{
//runs queries and builds foo list
}
public Boolean isWidgetCloseable(widgetId)
{
//a widget is closeable if all foos for that widget are set to "done"
List<Foo> foos = getallFoosForAWidget(widgetId);
boolean isCloseable = false;
//process foos and update isCloseable respectively
return new Boolean(boolean);
}
}
@Stateless
public class WidgetManager implements WidgetManagerLocal, WidgetManagerRemote
{
public void closeWidgetIfFoosAreDone(widgetId) //needs to do stuff with foos
{
//generate the widget based on widgetId
Widget widget = find(Widget.class, widgetId)
//is this appropriate?
//beans are gathered through our own beanclient
FooManager fooManager = BeanClient.getBean(FooManager.class);
if(fooManager.isWidgetCloseable(widgetId)
{
widget.setStatus(Close);
save(widget); //save widget back to database
}
}
}
Мой вопрос заключается в том, что если бин WidgetManager называют уже созданные методы в бобе FooManager? Должен ли клиент проверить, какие виджеты могут быть закрыты, а затем отправить список идентификаторов в WidgetManager?
Я склоняюсь к последней ситуации, так что EJB не нужно беспокоиться о вызове друг друга методами. Клиент может их использовать и просто нужно отправить список идентификаторов.
Честно описание не является полным и вид реферата. –
Согласен. Начинается, как будто собирается куда-то, а потом не – b3bop