321.7. Spring Java Config


Spring은 XML Config를 사용하여 다른 빈을 함께 사용하기 시작했습니다. 그러나 일부 사람들은 XML을 사용하지 않고 대신 Java 코드를 사용하여 Spring JavaConfig 프로젝트와 함께 Guice를 생성했습니다.

Camel에서 XML 또는 Java 구성 접근 방식을 사용할 수 있습니다. 원하는 대로 선택할 수 있습니다.

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. 설정

Camel과 함께 JavaConfig를 사용하는 가장 일반적인 경우는 라우터에서 사용할 정의된 경로 목록을 사용하여 구성을 생성하는 것입니다.

@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 부터 CamelSpringJUnit4ClassRunnerCamelSpringTestContextLoader를 사용할 수 있습니다. 이는 Java Config 및 Camel 통합을 테스트하는 데 권장되는 방법입니다.

RouteBuilder 인스턴스 컬렉션을 생성하려면 CamelConfiguration 도우미 클래스에서 파생되고 routes() 메서드를 구현합니다. route() 메서드를 재정의하지 않는 경우( Camel 2.13.0부터) CamelConfiguration 은 Spring 컨텍스트에서 사용 가능한 모든 RouteBuilder 인스턴스를 사용합니다.

Java Config를 사용하는 다음 예제에서는 Camel 2.10과의 Java Config 통합을 테스트하는 방법을 보여줍니다. JavaConfigContextLoader 는 더 이상 사용되지 않으며 CamelSpringDelegatingTestContextLoader 를 대신하여 Camel의 향후 버전에서 제거할 수 있습니다.

@ContextConfiguration 주석은 Spring 테스트 프레임워크에 사용할 구성으로 ContextConfig 클래스를 로드하도록 지시합니다. 이 클래스는 CamelContext를 구성한 다음 생성한 RouteBuilder를 등록하는 도우미 Spring Java Config 클래스인 SingleRouteCamelConfiguration 에서 파생됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.