基本框架
Apache Camel
Spring Boot
Maven
開發過程
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,查詢到需要的數據,進行響應