Главная » Spring » Проксирование  управляемых компонентов Spring

0

Компонент Spring MBeanProxyFactoryBean – это фабричный компо- нент, создающий прокси-объекты и действующий подобно фабрич- ным компонентам, рассматривавшимся в главе 11. Только созда- ваемые им прокси-объекты обеспечивают доступ не к удаленным службам Spring, а к удаленным управляемым компонентам MBean (как если бы они были локальными компонентами). На рис. 14.4 показано, как действует этот механизм.

Рис. 14.4. MBeanProxyFactoryBean создает прокси-объекты для лоступа к удаленным компонентам MBean.

Благодаря прокси-объекту клиент может взаимодействовать с удаленным компонентом MBean, как если бы он был локально настроенным POJO

Например, взгляните на следующее объявление компонента MBean- ProxyFactoryBean:

<bean id="remoteHomeControllerMBean" class="org.springframework.jmx.access.MBeanProxyFactoryBean" p:objectName="spitter:name=HomeController"

p:server-ref="mBeanServerClient" p:proxyInterface=

"com.habuma.spitter.jmx.HomeControllerManagedOperations" />

Свойство objectName определяет имя удаленного компонента MBean. Здесь это свойство ссылается на компонент MBean HomeCont- roller, экспортированный ранее.

Свойство server ссылается на компонент MBeanServerConnection, че- рез который будут осуществляться все взаимодействия. Здесь в это свойство внедряется ссылка на компонент MBeanServerConnectionFacto ryBean, настроенный выше.

Наконец, свойство proxyInterface определяет интерфейс, который будет реализован прокси-объектом. В данном случае используется интерфейс HomeControllerManagedOperations, который был определен в разделе 14.1.2.

После объявления компонента remoteHomeControllerMBean его можно внедрить в любой другой компонент, в свойство типа HomeControll erManagedOperations, и использовать для доступа к удаленному ком- поненту MBean, то есть вызывать его методы setSpittlesPerPage() и getSpittlesPerPage().

Итак, мы познакомились с несколькими способами организации взаимодействий с управляемыми компонентами MBean и теперь мо- жем просматривать и изменять настройки компонентов Spring пря- мо во время выполнения приложения. Однако до сих пор эти взаи- модействия носили односторонний характер. Мы могли обращаться к компонентам MBean, а компоненты MBean не могли обращаться к внешнему миру. Теперь пришло время послушать, что они могут сообщить нам, обеспечив прием извещений от них.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии