Spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统 一了RESTful的标准,封装了http链接, 我们只需要传入url及返回值类型即可。
相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。
在Spring应用程序中访问第三方REST服务与使用Spring RestTemplate类有关。RestTemplate类的设计 原则与许多其他Spring 模板类(例如JdbcTemplate、JmsTemplate)相同,为执行复杂任务提供了一种具 有默认行为的简化方法。
RestTemplate默认依赖JDK提供http连接的能力(HttpURLConnection),如果有需要的话也可以通过 setRequestFactory方法替换为例如 Apache HttpComponents、Netty或OkHttp等其它HTTP library。
考虑到RestTemplate类是为调用REST服务而设计的,因此它的主要方法与REST的基础紧密相连就不足 为奇了,后者是HTTP协议的方法:HEAD、GET、POST、PUT、DELETE和OPTIONS。例如,RestTemplate类具有headForHeaders()、getForObject()、postForObject()、put()和delete()等方法。下面介绍一下其使用方法......
1、首先在oracle数据库中创建产品product的表,其SQL语句如下。
CREATE TABLE "GPP"."TB_PRODUCT"
( "ID" NUMBER(11,0),
"PRODUCT_NAME" VARCHAR2(40),
"STATUS" NUMBER(2,0),
"PRICE" NUMBER(10,2),
"PRODUCT_DESC" VARCHAR2(255),
"CAPTION" VARCHAR2(255),
"INVENTORY" NUMBER(11,0),
CONSTRAINT "TB_PRODUCT_PK" PRIMARY KEY ("ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "GPP" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "GPP"
COMMENT ON COLUMN "GPP"."TB_PRODUCT"."PRODUCT_NAME" IS '名称'
COMMENT ON COLUMN "GPP"."TB_PRODUCT"."STATUS" IS '状态'
COMMENT ON COLUMN "GPP"."TB_PRODUCT"."PRICE" IS '单价'
COMMENT ON COLUMN "GPP"."TB_PRODUCT"."PRODUCT_DESC" IS '描述'
COMMENT ON COLUMN "GPP"."TB_PRODUCT"."CAPTION" IS '标题'
COMMENT ON COLUMN "GPP"."TB_PRODUCT"."INVENTORY" IS '库存'
COMMENT ON TABLE "GPP"."TB_PRODUCT" IS '商品表';
并插入一条数据
2、使用idea创建一个空的maven父工程,然后创建一个名为product_service的maven子工程。其父pom文件代码如下.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.flyrain</groupId>
<artifactId>spring_cloud_parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module&