60.8. Camel 8080 통합
60.8.1. Camel 주석
Camel은 Camel 빈 통합의 일부로 Camel CDI에서 원활하게 지원하는 주석 세트와 함께 제공됩니다. 따라서 CDI 빈에서 이러한 주석을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
Camel 주석 | 해당하는 CDI | |
---|---|---|
구성 속성 |
@PropertyInject("key") String value; | Cryostat Spike 구성 메커니즘을 사용하는 경우: @Inject @ConfigProperty(name = "key") String value; 자세한 내용은 구성 속성을 참조하십시오. |
생산자 템플릿 삽입(기본 Camel 컨텍스트) |
@Produce(uri = "mock:outbound") ProducerTemplate producer; @Produce(uri = "mock:outbound") FluentProducerTemplate producer; |
@Inject @Uri("direct:outbound") ProducerTemplate producer; @Produce(uri = "direct:outbound") FluentProducerTemplate producer; |
엔드포인트 삽입(기본 Camel 컨텍스트) |
@EndpointInject(uri = "direct:inbound") Endpoint endpoint; |
@Inject @Uri("direct:inbound") Endpoint endpoint; |
엔드포인트 삽입(이름별Camel 컨텍스트) |
@EndpointInject(uri = "direct:inbound", context = "foo") Endpoint contextEndpoint; |
@Inject @ContextName("foo") @Uri("direct:inbound") Endpoint contextEndpoint; |
Quarkus 주입(유형별) |
@BeanInject MyBean bean; |
@Inject MyBean bean; |
8080 삽입 (이름별) |
@BeanInject("foo") MyBean bean; |
@Inject @Named("foo") MyBean bean; |
Cryostat 사용 |
@Consume(uri = "seda:inbound") void consume(@Body String body) { //... } |
60.8.2. Cryostat 구성 요소
유형 또는 이름(예: Java Camel DSL 사용)에서 CDI 빈을 참조할 수 있습니다.
class MyBean { //... } from("direct:inbound").bean(MyBean.class);
또는 Java DSL에서 이름으로 CDI 부울을 조회하려면 다음을 수행합니다.
@Named("foo") class MyNamedBean { //... } from("direct:inbound").bean("foo");
60.8.3. 엔드 포인트 URI에서 빈 참조
URI 구문을 사용하여 끝점을 구성할 때 #
표기법을 사용하여 레지스트리의 빈을 참조할 수 있습니다. URI 매개변수 값이 #
기호로 시작되면 Camel CDI는 지정된 유형의 빈을 이름으로 조회합니다. 예를 들면 다음과 같습니다.
from("jms:queue:{{destination}}?transacted=true&transactionManager=#jtaTransactionManager").to("...");
@Named("jtaTransactionManager")
로 자격을 갖춘 CDI 8080이 있어야 합니다.
@Produces @Named("jtaTransactionManager") PlatformTransactionManager createTransactionManager(TransactionManager transactionManager, UserTransaction userTransaction) { JtaTransactionManager jtaTransactionManager = new JtaTransactionManager(); jtaTransactionManager.setUserTransaction(userTransaction); jtaTransactionManager.setTransactionManager(transactionManager); jtaTransactionManager.afterPropertiesSet(); return jtaTransactionManager; }