2016-06-10 62 views
0

我怎樣才能設置我的駱駝項目完全依賴於Spring依賴注入系統,而使用maven駱駝運行插件是免費的xml。我已經嘗試了大量的配置,但我似乎仍然只能導入我的java配置文件的「shell上下文」文件。無論如何擺脫這個?注:2.17.1也對最新版本的駱駝Camel Spring JavaConfig Maven-Camel-Plugin沒有任何xml

駱駝路線

@Component 
public class TestRoute extends SpringRouteBuilder { 
    @Override 
    public void configure() throws Exception { 
     from("timer://foo?repeatCount=1") 
      .log("Hello World"); 
    } 
} 

Java的配置

@Configuration 
@ComponentScan("com.mcf.xml.free.route") 
public class RouteJavaConfig extends CamelConfiguration { 

} 

的Maven插件駱駝

  <plugin> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-maven-plugin</artifactId> 
       <version>${camel.version}</version> 
       <configuration> 
        <configClasses>com.mcf.xml.free.config.RouteJavaConfig</configClasses> 
       </configuration> 
      </plugin> 

插件上下文,讓這一切工作我想擺脫。

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:annotation-config/> 
    <bean class="com.mcf.xml.free.config.RouteJavaConfig"/> 
</beans> 

有沒有辦法讓maven camel run plugin接受Java Config而不是Spring Context文件?此外,我還沒有測試過,但如果刪除此文件會導致部署到Apache Karaf的問題有一種方法來配置它以使用我的Java配置?

+0

我問這是出於好奇。爲什麼你想要擺脫這個小文件? –

+0

僅用於維護和重構目的。基於Xml的配置非常難以安全地用IDE工具重構。理想情況下,我的基礎項目應該沒有xml,除非它是用於某種遺留依賴項支持。我傾向於創建大量的應用程序,這些應用程序可能會進行大量的重構,因此清理任何會降低速度的應用程序是非常理想的。 –

回答

1

你可以用你自己創建一個主類啓動的Spring Java配置應用程序,然後使用Java的行家-exec插件來運行它。這個例子根本沒有XML文件。

有作爲Apache的駱駝的一部分的例子:https://github.com/apache/camel/tree/master/examples/camel-example-spring-javaconfig

+0

駱駝maven插件是否與Java配置? –

+0

是的,那麼你需要配置插件mainClass選項,並指向一個主要的例子,在所提供的鏈接中使用,或者在插件上配置configClasses或basedPackages選項。後兩者是用於java的主要java版本。 –

+0

真棒現在工作了,謝謝克勞斯! –

0

我認爲你的場景非常適合與駱駝一起使用彈簧靴。春季行情:

絕對沒有代碼生成爲他們的頁面上的XML配置

沒有要求。 Spring-Boot

這裏是一個彈簧引導駱駝例如,你可以看一下檢查:Camel-Spring Boot example

+0

我絕對同意Spring Boot非常棒,但是,如果我專門留在FUSE平臺上(駱駝,Spring,OSGI,CXF,Karaf),我想要鍛鍊我的選擇 –