A simplified Spring XML config namespace is provided for configuring the MessageBroker in your WebApplicationContext. To use the namespace support you must add the schema location in your Spring XML config files. A typical config will look something like the following:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:flex="http://www.springframework.org/schema/flex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.0.xsd"> ... </beans>
This makes the Spring BlazeDS Integration configuration tags available under the flex
namespace in your configuration files. The above setup will
be assumed for the rest of the configuration examples to follow. For the full detail of every attribute and tag available in the config namespace, be sure
to refer to the spring-flex-1.0.xsd as every element and attribute is fully documented there. Using an XSD-aware XML editor such as the one in Eclipse
should bring up the documentation automatically as you type.
At a minimum, the MessageBrokerFactoryBean
must be configured as a bean in your Spring WebApplicationContext in order to bootstrap the MessageBroker
,
along with a MessageBrokerHandlerAdapter
and an appropriate HandlerMapping
(usually a SimpleUrlHandlerMapping
) to route incoming
requests to the Spring-managed MessageBroker
.
These beans will be registered automatically by using the provided message-broker
tag in your bean
definition file. For example, in its simplest form:
<flex:message-broker/>
This will set up the MessageBroker
and necessary supporting infrastructure using sensible defaults. The defaults can be
overriden using the provided attributes of the message-broker
tag and its associated child elements. For example, the
default location of the BlazeDS XML configuration file (/WEB-INF/flex/services-config.xml) can be overridden using the
services-config-path
attribute. The MessageBrokerFactoryBean
uses Spring's ResourceLoader
abstraction,
so that typical Spring resource paths may be used. For example, to load the configuration from the application's classpath:
<flex:message-broker services-config-path="classpath*:services-config.xml"
The equivalent MessageBrokerFactoryBean
definition using vanilla Spring configuration would be:
<!-- Bootstraps and exposes the BlazeDS MessageBroker --> <bean id="_messageBroker" class="org.springframework.flex.core.MessageBrokerFactoryBean" > <property name="servicesConfigPath" value="classpath*:services-config.xml" /> </bean>
Note especially that with the message-broker
tag, it is not necessary to assign a custom id to the MessageBroker, and it
is in fact discouraged so that you won't have to continually reference it later. The only reason you would ever need to provide a custom
id is if you were bootstrapping more than one MessageBroker
in the same WebApplicationContext.