321.7. Spring Java Config


Spring 启动生命周期使用 XML Config 将 Bean 接合在一起。但是,有些人不想使用 XML,而是使用 Java 代码,这会导致与 Spring JavaConfig 项目一起创建 Guice。

您可以将 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 Config 一起连接。

321.7.2. Configuration

将 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 Config 的示例演示了如何测试 Java 配置与 Camel 2.10 的集成并降低。请记住,JavaConfigContextLoader 已被弃用,并可能在以后的 Camel 版本中删除,代表 CamelSpringDelegatingTestContextLoader

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.