Camel With Spring Bean Example using Spring DSL

Camel With Spring Bean Example using Spring DSL with simple steps.


In this example we will learn how can we inject bean into camel route through spring.

  • In eclipse go to MyFirstCamelProject that we created in earlier page and right click on src/main/java to create package.New -> package



  • Give any name for example com.preparationforinterview.spring.bean and click on Finish



  • Right click on package and create a java class for example Executor.



  • Right click on package and create one more java class for example Employee.

  • Right click on src/main/resources and and create one .xml file for example MySpring.xml.



  • Create two folder one with name input and other as output.At the end we will get following structure



  • Create any file in input folder.I created text file with name Hello and added line
  • Employee whose name is developer is preparing for interview from preparationforinterview.com
  • Add following dependency in pom.xml file.you can use any latest version.

  •  	
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>MyFirstCamelProject</groupId>
    	<artifactId>MyFirstCamelProject</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<dependencies>
    		<dependency>
    			<groupId>org.apache.camel</groupId>
    			<artifactId>camel-core</artifactId>
    			<version>2.13.0</version>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.camel</groupId>
    			<artifactId>camel-spring</artifactId>
    			<version>2.13.0</version>
    		</dependency>
    	</dependencies>
    </project>
    
  • Run mvn:install from command prompt or if you are using Eclipse right click on pom.xml and run mvn install.It will download camel jars

  • Copy below code in Executor.

  •  
    package com.preparationforinterview.spring.bean;
    
    import org.springframework.context.support.AbstractApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Executor {
    	public static void main(String args[]) throws InterruptedException {
    		@SuppressWarnings("resource")
    		AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(
    				"MySpring.xml");
    		ctx.start();
    		System.out.println("Entered>>>>>");
    		Thread.sleep(5 * 60 * 1000);
    		ctx.stop();
    	}
    
    
    }
    

    Explain

    In this example we are loading spring file and starting CamelContext.When we start CamelContext ,it will start to read message from input and will send it to destination.

  • Copy below code in Employee.

  •  
    package com.preparationforinterview.spring.bean;
    
    public class Employee {
    
    	public String employeeDetails(final String inputDetails) {
    		return "Hello employee details are as follows. " + inputDetails;
    
    	}
    
    }
    
  • Write lines in MySpring.xml.

  •  	
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 
    		http://www.springframework.org/schema/beans/spring-beans.xsd          
    		http://camel.apache.org/schema/spring 
    		http://camel.apache.org/schema/spring/camel-spring.xsd">
    
    	<bean id="employee" class="com.preparationforinterview.spring.bean.Employee" />
    	<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    		<route>
    			<from uri="file:input?noop=true" />
    			<bean ref="employee" method="employeeDetails"/>
    			<to uri="file:output" />
    		</route>
    	</camelContext>
    </beans>
    
    

    Explain

    Last entry in xml file <camelContext xmlns="http://camel.apache.org/schema/spring"/> creates SpringCamelContext which provides CamelContext.In CamelContext we have add route so when we start spring application that routes also start. We created a employee bean and in camelcontext we have added one entry <bean ref="employee" method="employeeDetails"/> to refer that bean.If we have only single public method then we don't need to give method name.Only <bean ref="employee"/> When we start the route it will take input from input folder and with that value will call to bean method.As bean method employeeDetails return String. that will be sent to output folder.If we open file in output folder,we will get following output.

    Hello employee details are as follows. Employee whose name is developer is preparing for interview from preparationforinterview.com
    To check the output right click on Executor.java and run it. It will copy file in output folder from input folder
    To run the program from command prompt,open command prompt and go to project location and run below command.
    mvn compile exec:java -Dexec.mainClass=com.preparationforinterview.spring.bean.Executor

Download source code

Camel With Spring Bean Example using Spring DSL



Visit Others Links

Camel Introduction
Camel Setup
File Copy Example Using Camel
File Copy Example In Camel Using Spring
JMS Message Transfer Example Using Camel
JMS Message Transfer Example In Camel Using Spring
Processor In Camel
Object to JSON Transfer Example Using Spring In Camel
Camel With Bean Injection Example Using Spring DSL
Camel With Bean Injection Registry Example Using Java DSL
Camel Bean Parameter Binding Example Using Java DSL
Camel Error Handling With Redelivery Example Using Java DSL
Camel Exception Handling With Example Using Java DSL
Camel JUnit Test With Example Using Java DSL
Camel JUnit Test With Example Using Spring DSL
Camel Unit Test With Mock Component Example
Camel With Stream Component Example
Camel In-Memory Messaging Example Using Direct
Camel With Timer And Quartz Example
Camel Aggregator EIP Example
Camel Splitter EIP Example
Camel Routing Slip EIP Example
Camel Dynamic Router EIP Example
Camel Load Balancer EIP Example
Top Camel Interview Question
© 2019 PreparationForInterview.com