Мотивация здесь заключается в том, что большинство реализаций EJB работают на прокси.Вы не будете слишком далеко думать об этом как ооо старой школы.Бизнес-интерфейс реализуется контейнером EJB, довольно часто через простой java.lang.reflect.Proxy, и этот объект передается всем в системе, кто запрашивает ejb через поиск @EJB или JNDI.
Прокси-сервер подключен к контейнеру, и все вызовы по нему направляются непосредственно в контейнер, который будет выполнять проверки безопасности, запускать / останавливать / приостанавливать транзакции, вызывать перехватчики и т. Д. И т. Д., А затем, наконец, делегировать вызов экземпляру компонента -- и, конечно, выполнить любую необходимую очистку из-за возникших исключений - затем, наконец, передать возвращаемое значение через прокси вызывающей стороне.
Вызов непосредственно this.foo () или передача this ввызывающая сторона, чтобы они могли делать прямые звонки, пропустит все это, и контейнер будет эффективно вырезан из картинки.Метод 'getBusinessObject (Class)' позволяет экземпляру компонента по существу получать прокси для себя, чтобы он мог вызывать свои собственные методы и использовать связанные с ним сервисы управления контейнерами - перехватчики, управление транзакциями, обеспечение безопасности и т. Д.