JBOSS Fuse中基于Spring Boot的RESTful服务

时间:2016-04-25 12:25:25

标签: rest spring-boot jbossfuse

我是JBoss Fuse的新手,也是Karaf,Camel,Fabic8,CXF的新手。

我想为JBoss Fuse(6.2.1)部署一个简单的restful服务。

我想理想地使用Spring Boot,因为它使独立开发盒上的开发/测试变得更容易(可以使用boostrap servlet容器等)。 我还想尽可能地减少(或消除)Maven POM之外的任何XML配置。 所以Spring Java Configuration而不是XML配置。 我愿意使用Spring-MVC或Jax-RS / CXF进行服务。

这是否可以实现并且是一个“好”的课程?

我似乎无法找到任何类似的可行示例。有人可以给我一个例子,或者提供一些提示来解决这个问题吗?我一般都熟悉Spring / Spring-MVC / Jax-RS。但是在Karaf / Camel / Fabric8 / OSGi,各种部署选项等之间,我正在旋转并且无法入门。

谢谢!

只是为了澄清,这是针对Karaf的JBOSS Fuse,而不是Fuse EAP。

2 个答案:

答案 0 :(得分:4)

我不认为这是可以实现的,如果是,它可能不应该。

首先,Java配置:

当然,你可以在Fuse上使用Camel组件进行Spring java注释,记住Fuse 6.2使用spring 3.2,所以你几乎不受任何对Java配置的支持。我没有试过这个,但肯定会赞同它。

其次,Fuse和Spring Boot:

就Spring Boot而言,Fuse和spring boot并不真正兼容,因为它们都是运行应用程序的容器(Fuse容器的范围比Spring引导要宽得多,但从根本上说它们都希望管理执行适合您应用的环境)。

怎么做?

如果您只想运行REST Web服务并且不需要任何其他Fuse'那么Spring Boot是一个非常强大的服务容器,您可以只是查克了解所有Fuse的东西(尽管你可以通过在你的应用程序中使用java库来使用Camel和AMQ)。

如果您需要使用Fuse作为执行环境,那么您真的不想使用spring boot。据推测,需要OSGI,Fabric等,所以你需要穿上Fuse直筒夹克。对于REST端点,我会看看camel-rest组件,但是如果你真的想使用jax-rs JSR311资源绑定,那么它描述了in the camel docs,虽然我没有尝试使用Fuse(6.2)使用camel 2.15所以这个应该工作。)

为了投入另一个扳手,我最近使用dropwizard作为我的REST服务的容器,这很大程度上利用了Jax-RS和jersey(我更喜欢CXF配置的恐怖)并没有像春季启动那样做神奇的自动配置。

答案 1 :(得分:1)

既然你的问题有许多部分,我会试着将它们分解,并将我的意见和思考过程放在后面:

  1. “Spring BOOT使开发和测试更容易”& “避免XML配置” - 是的。要在本地进行原型设计,您可以使用嵌入式tomcat快速开发,部署和测试。一旦准备好部署到任何应用程序服务器(在您的情况下为JBoss Fuse),您就可以从POM中删除嵌入式tomcat插件并只部署生成的工件
  2. “Spring Java配置的使用” - 如果您使用Spring BOOT,则不需要这样做,它将为您提供配置所需的所有选项。
  3. 要开始使用(从使用注释的框架到创建工件,再到卑鄙的JBoss),官方文档涵盖了所有步骤[示例项目与嵌入式tomcat - https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-tomcat&教程 - http://spring.io/guides/gs/rest-service]
  4. 部署选项 - 如果您使用的是Maven,则会涵盖编译到工件创建生命周期。为了自动部署以及在服务器上处理Maven生命周期,Jenkins是一个很好的候选人:不幸的是我没有使用你提到的其他候选人。