이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Chapter 4. Using Camel with Spring XML
Using Camel with Spring XML files is a way of using XML DSL with Camel. Camel has historically been using Spring XML for a long time. The Spring framework started with XML files as a popular and common configuration for building Spring applications.
Example of Spring application
4.1. Using Java DSL with Spring XML files 링크 복사링크가 클립보드에 복사되었습니다!
You can use Java Code to define your RouteBuilder implementations. These are defined as beans in spring and then referenced in your camel context, as shown:
<camelContext xmlns="http://camel.apache.org/schema/spring"> <routeBuilder ref="myBuilder"/> </camelContext> <bean id="myBuilder" class="org.apache.camel.spring.example.test1.MyRouteBuilder"/>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<routeBuilder ref="myBuilder"/>
</camelContext>
<bean id="myBuilder" class="org.apache.camel.spring.example.test1.MyRouteBuilder"/>
4.1.1. Configure Spring Boot Application 링크 복사링크가 클립보드에 복사되었습니다!
To use Spring Boot Autoconfigure XML routes for beans, you musy import the XML resource. To do this, you can use a Configuration class.
For example, given that the Spring XML file is located to src/main/resources/camel-context.xml you can use the following configuration class to load the camel-context:
Example: using a Configuration class
4.2. Specifying Camel routes using Spring XML 링크 복사링크가 클립보드에 복사되었습니다!
You can use Spring XML files to specify Camel routes using XML DSL as shown:
4.3. Configuring Components and Endpoints 링크 복사링크가 클립보드에 복사되었습니다!
You can configure your Component or Endpoint instances in your Spring XML as follows in this example.
This allows you to configure a component using any name, but its common to use the same name, for example, jms. Then you can refer to the component using jms:destinationName.
This works by the Camel fetching components from the Spring context for the scheme name you use for Endpoint URIs.
4.4. Using package scanning 링크 복사링크가 클립보드에 복사되었습니다!
Camel also provides a powerful feature that allows for the automatic discovery and initialization of routes in given packages. This is configured by adding tags to the camel context in your spring context definition, specifying the packages to be recursively searched for RouteBuilder implementations. To use this feature add a <package></package> tag specifying a comma separated list of packages that should be searched. For example,
This scans for RouteBuilder classes in the com.foo and the sub-packages.
You can also filter the classes with includes or excludes such as:
This skips the classes that has Special in the name. Exclude patterns are applied before the include patterns. If no include or exclude patterns are defined then all the Route classes discovered in the packages are returned.
? matches one character, * matches zero or more characters, ** matches zero or more segments of a fully qualified name.
4.5. Using context scanning 링크 복사링크가 클립보드에 복사되었습니다!
You can allow Camel to scan the container context, for example, the Spring ApplicationContext for route builder instances. This allows you to use the Spring <component-scan> feature and have Camel pickup any RouteBuilder instances which was created by Spring in its scan process.
This allows you to just annotate your routes using the Spring @Component and have those routes included by Camel:
You can also use the ANT style for inclusion and exclusion, as mentioned above in the package scan section.