您可以使用ContextProvider
特徵提供CamelExtension
與您自己的CamelContext
。
例如,這裏有一個,如果不使用Spring註冊的MongoDB連接豆:
package my.akka.app
import akka.camel.ContextProvider
import akka.actor.ExtendedActorSystem
import org.apache.camel.impl.{SimpleRegistry, DefaultCamelContext}
import com.mongodb.MongoClient
class CamelContextProvider extends ContextProvider {
override def getContext(system: ExtendedActorSystem): DefaultCamelContext = {
val registry = new SimpleRegistry
val mongoClient = new MongoClient("localhost", 27017)
registry.put("localMongo", mongoClient)
new DefaultCamelContext(registry)
}
}
然後你只需要配置application.conf
使用你的服務提供商:
akka {
camel {
context-provider = "my.akka.app.CamelContextProvider"
}
}
現在連接豆可用在註冊表中用於路線:
camelContext.addRoutes(new RouteBuilder {
"direct:start" --> "mongodb:localMongo?database=akka&collection=test&operation=save"
})
要回答原始問題,您可以使用Vidya答案中的方法獲取您需要的彈簧配置CamelContext
,並通過此方法將其提供給Akka CamelExtension
。