JBoss.org Community Documentation

- Prev
- Next

## Chapter 44. Spring Integration``

HornetQ provides a simple bootstrap class, `org.hornetq.integration.spring.SpringJmsBootstrap`, for integration with Spring. To use it, you configure HornetQ as you always would, through its various configuration files like `hornetq-configuration.xml`, `hornetq-jms.xml`, and `hornetq-users.xml`. The Spring helper class starts the HornetQ server and adds any factories or destinations configured within `hornetq-jms.xml` directly into the namespace of the Spring context. Let's take this `hornetq-jms.xml` file for instance:

    <configuration xmlns="urn:hornetq"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
        <!--the connection factory used by the example-->
        <connection-factory name="ConnectionFactory">
            <connectors>
                <connector-ref connector-name="in-vm"/>
            </connectors>
            <entries>
                <entry name="ConnectionFactory"/>
            </entries>
        </connection-factory>

        <!--the queue used by the example-->
        <queue name="exampleQueue">
            <entry name="/queue/exampleQueue"/>
        </queue>

    </configuration>

Here we've specified a `javax.jms.ConnectionFactory` we want bound to a `ConnectionFactory` entry as well as a queue destination bound to a `/queue/exampleQueue` entry. Using the `SpringJmsBootStrap` bean will automatically populate the Spring context with references to those beans so that you can use them. Below is an example Spring JMS bean file taking advantage of this feature:

    <beans xmlns="http://www.springframework.org/schema/beans"
           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-3.0.xsd">

       <bean id="EmbeddedJms" class="org.hornetq.integration.spring.SpringJmsBootstrap" init-method="start"/>

       <bean id="listener" class="org.hornetq.tests.integration.spring.ExampleListener"/>

       <bean id="listenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
           <property name="connectionFactory" ref="ConnectionFactory"/>
           <property name="destination" ref="/queue/exampleQueue"/>
           <property name="messageListener" ref="listener"/>
       </bean>

    </beans>

As you can see, the `listenerContainer` bean references the components defined in the `hornetq-jms.xml` file. The `SpringJmsBootstrap` class extends the EmbeddedJMS class talked about in Section 43.1.2, “JMS API” and the same defaults and configuration options apply. Also notice that an `init-method` must be declared with a start value so that the bean's lifecycle is executed. See the javadocs for more details on other properties of the bean class.

- PrevChapter 43. Embedding HornetQ
- Top of page
- Front page
- NextChapter 45. Intercepting Operations