当前位置: 首页 > 知识库问答 >
问题:

在Quarkus框架中使用apache camel Bean

松新
2023-03-14

我正在尝试将apache camel与Quarkus一起使用。之前,我使用Spring Boot框架开发camel集成。所以有很多问题我仍在试图弄清楚w.r.t.Quarkus框架。

关于:豆子

在Spring靴里我可以做这样的事

@Configuration
public class JABXContextConfig {

    @Bean
    Unmarshaller jaxbUnmarshaller() throws JAXBException {
        JAXBContext jaxbContext  = JAXBContext.newInstance(MyPOJO.class );
        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
        return jaxbUnmarshaller;
    }
}

然后我可以使用DI将它注入到类中

@Component
public class MyRestServiceRoute extends RouteBuilder {

   private final JaxbDataFormat jaxb;

   @Autowired
   public MyRestServiceRoute(JaxbDataFormat jaxb) throws Exception{
      this.jaxb = jaxb;
   }
   ....
      
 }

问题:

  1. 我如何在Quarkus框架中做同样的事情?P. S.

谢谢,

共有1个答案

牟慎之
2023-03-14

我建议阅读Quarkus CDI文档:

https://quarkus.io/guides/cdi

https://quarkus.io/guides/cdi-reference

还有一个使用CDI配置Camel的基本概述:

https://camel.apache.org/camel-quarkus/latest/user-guide/bootstrap.html#_cdi

https://camel.apache.org/camel-quarkus/latest/user-guide/cdi.html

在您的示例中,@Bean可以由生产者方法替换,如:

public class JaxbDataFormatProducer {

    @ApplicationScoped
    JaxbDataFormat jaxbDataFormat() {
        return new JaxbDataFormat();
    }
}

@autowmed构造函数参数可能看起来像这样(如果只有一个构造函数,那么实际上不需要@Inject):

@ApplicationScoped
public class MyRestServiceRoute extends BaseRouteBuilder {

   private final JaxbDataFormat jaxb;

   @Inject
   public MyRestServiceRoute(JaxbDataFormat jaxb) throws Exception{
      super(properties);
      this.jaxb = jaxb;
   }
      
 }
 类似资料:
  • 我想在@ServerRequestFilter过滤器中打印post请求正文的json日志 但是我发现无论我对entityStream触发器做什么:

  • EasyWeChat 是一个通用的 Composer 包,所以不需要对框架单独做修改,只要支持 Composer 就能直接使用,当然了,为了更方便的使用,我们收集了以下框架单独提供的拓展包: Laravel overtrue/laravel-wechat Symfony lilocon/WechatBundle Yii jianyan74/yii2-easy-wechat 适用于 EasyWeCh

  • QueryList无框架依赖,可以灵活的嵌入到任何项目中去。 在使用Composer管理的项目中安装 在非Composer管理的项目中安装 QueryList可以集成到任何框架中去使用,无需做任何修改,直接使用Composer安装到项目中去即可。 在使用Composer管理的项目中安装 如果项目框架本身就是使用Composer来管理包的话,直接在项目根目录执行Composer安装命令后,即可在项目

  • 我只是在用Quarkus做实验,我在ResourceLoader上遇到了一个问题。具体来说,当我尝试使用ResourceLoader inject时,maven的干净安装出错了 这是maven的输出: 您知道如何在Quarkus中使用ResourceLoader吗,或者是否有一种等效的方法来读取类路径资源中的文件? 这是我目前的情况: 我已经在project resources文件夹中找到了这些文

  • 目标:用 Docker 的方式搭建一个 Java Spring Boot 应用 本项目代码维护在 DaoCloud/docker-demo-spring-boot 项目中。 您可以在 GitHub 找到本项目并获取本文中所提到的所有代码文件。 前言 Java 一直是企业应用开发的大头,在互联网时代,在云计算、大数据的推动下,Java 又焕发了新生。 Spring Framework 是 Java

  • 了解了WSGI框架,我们发现:其实一个Web App,就是写一个WSGI的处理函数,针对每个HTTP请求进行响应。 但是如何处理HTTP请求不是问题,问题是如何处理100个不同的URL。 每一个URL可以对应GET和POST请求,当然还有PUT、DELETE等请求,但是我们通常只考虑最常见的GET和POST请求。 一个最简单的想法是从environ变量里取出HTTP请求的信息,然后逐个判断: de