开源工具技巧WEB前端程序开发程序员

Apache Camel,Spring Boot 创建web服务

2017-02-03  本文已影响0人  字伯约

基本框架

开发过程

1.新建一个POM(quickstart)项目,在POM文件中添加Camel,Spring Boot,jetty的依赖

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency> 
 <groupId>org.apache.camel</groupId> 
 <artifactId>camel-spring-boot-starter</artifactId> 
 <version>2.18.1</version>
</dependency>
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-jetty</artifactId>
  <version2.17.0</version>
</dependency>
</dependencies>

2.新建Application.java 启动类

@SpringBootApplication
public class Application{
    public static void main(String[] args) {
          final ApplicationContext context = new SpringApplication(Application.class).run(args);
          final CamelSpringBootApplicationController controller = context.getBean(CamelSpringBootApplicationController.class);
          controller.run();
    }
}

3.新建一个HttpRouteBuilder.java

@Component
public class HttpRouteBuilder extends SpringRouteBuilder{
    @Override
    public void configure() throws Exception {
        from("jetty:http://localhost:8080/myapp/myservice").process(new MyBookProcessor());
    }  
}

4.新建MyBookProcessor.java

@Component
public clas MyBookProcessor implements Processor {
    @Override
    public void process(Exchange exchange) throws Exception{
         exchange.getOut().setBody("<html><body>Book is good</body></html>");
    }
}

5.使用浏览器访问http://localhost:8080/myapp/myservice
浏览器显示 Book is good

6.获取http请求的参数
比如http请求为:http://localhost:8080/myapp/myservice?bookId=1&categoryId=2,从exchange.getIn().getHeader("xxx")就可以获取到相应的参数值
修改MyBookProcessor.java

private static final Logger LOGGER = LoggerFactory.getLogger(MyBookProcessor.class);
public clas MyBookProcessor implements Processor {
    @Override
    public void process(Exchange exchange) throws Exception{
        LOGGER.info("bookId={},categoryId={}", exchange.getIn.getHeader("bookId"), exchange.getIn().getHeader("categoryId"));
        exchange.getOut().setBody("<html><body>Book is good</body></html>");
    }
}

7.使用jetty作为web服务时,endpoint的格式
jetty:http://{ip_address}:{port}/{path}
如果ip_address 指定为0.0.0.0,就可以监听全网

8.连接DB,响应合适的结果
在获取到http请求的参数之后,可以通过spring-jpa或者其他ORM连接DB,查询到需要的数据,进行响应

上一篇下一篇

猜你喜欢

热点阅读