321.7. Spring Java Config


Spring started Life using XML Config to wire Bean 在一起。但是,某些人不像使用 XML,而是使用导致创建 Guice 与 Spring JavaConfig 项目的 Java 代码。

您可以将 XML 或 Java 配置方法与 Camel 一起使用;其选择实际上是您喜欢的。

321.7.1. 使用 Spring Java Config

要在 Camel 项目中使用 Spring Java Config,最简单的操作是将以下内容添加到 pom.xml 中

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-spring-javaconfig</artifactId>
  <version>${camel-version}</version>
</dependency>

然后,这将添加 Spring JavaConfig 库的依赖项以及用于在 Spring 中配置 Camel 的一些帮助程序类。

请注意,这个库完全是可选的;您可以只将 Camel 与 Java 配置连接在一起。

321.7.2. 配置

将 JavaConfig 与 Camel 搭配使用的最常见情况是,使用由路由器使用的路由列表来创建配置。

@Configuration
public class MyRouteConfiguration extends CamelConfiguration {

    @Autowire
    private MyRouteBuilder myRouteBuilder;

    @Autowire
    private MyAnotherRouteBuilder myAnotherRouteBuilder;

    @Override
    public List<RouteBuilder> routes() {
        return Arrays.asList(myRouteBuilder, myAnotherRouteBuilder);
    }

}

从 Camel 2.13.0 开始,您可以跳过 routes () 定义,再回退到 Spring 上下文中的 RouteBuilder 实例。

@Configuration
@ComponentScan("com.example.routes")
public class MyRouteConfiguration extends CamelConfiguration {
}

321.7.3. 测试

Camel 2.11.0 起,您可以使用 CamelSpringJUnit4ClassRunnerCamelSpringDelegatingTestContextLoader。这是测试 Java 配置和 Camel 集成的建议方法。

如果要创建 RouteBuilder 实例的集合,则从 CamelConfiguration 帮助程序类派生并实施 routes () 方法。请记住,如果没有覆盖 routes () 方法,则(从 Camel 2.13.0 开始),则 CamelConfiguration 将使用 Spring 上下文中提供的所有 RouteBuilder 实例。

以下示例使用 Java 配置示例 演示了如何测试与 Camel 2.10 和更低的 Java 配置集成。请记住,JavaConfigContextLoader 已被弃用,可代表 Camel SpringDelegatingTestContextLoader 的未来版本删除。

@ContextConfiguration 注释告知 Spring Testing 框架来加载 ContextConfig 类,作为要使用的配置。此类从 SingleRouteCamelConfiguration 派生而来,它是一个帮助程序 Spring Java Config 类,它将为我们配置 CamelContext,然后注册我们创建的 RouteBuilder。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.