目录
1、新建项目springcloud(File--->New--->Project)
使用maven quickstart快速新建Maven项目
输入项目名称和Maven信息
确认Maven目录、配置文件、本地仓库,Finish即可
2、创建聚合项目springcloud-member、springcloud-order(项目名称自定义,以会员项目、订单项目做演示远程调用)
右键父项目--->New--->Module,剩下步骤和新建父项目同理
两个项目pom文件均引入springboot的web模块
3、编写springcloud-member配置文件、服务启动类、Controller
3.1 application.yml
3.2 服务启动类MemberApp.class
3.3 MemberController.class
4、编写springcloud-order配置文件、服务启动类、Controller
4.1 application.yml
4.2 服务启动类OrderApp.class
4.3 OrderController.class
5、使用RestTemplate访问远程接口
5.1 实例化RestTemplate Bean对象
5.2 注入RestTemplate Bean对象
5.3 通过getForObject方法调用远程接口
6、启动两个聚合项目启动类OrderApp、MemberApp
访问地址:localhost:9071/order/orderInfo
访问地址:localhost:9081/member/getOrderInfo
7、项目结构
1、新建项目springcloud(File--->New--->Project)
使用maven quickstart快速新建Maven项目
输入项目名称和Maven信息
确认Maven目录、配置文件、本地仓库,Finish即可
此项目为聚合项目的父项目,只需要保留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.chen</groupId>
<artifactId>springcloud</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>springcloud-member</module>
<module>springcloud-order</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<springboot.version>2.2.8.RELEASE</springboot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2、创建聚合项目springcloud-member、springcloud-order(项目名称自定义,以会员项目、订单项目做演示远程调用)
右键父项目--->New--->Module,剩下步骤和新建父项目同理
两个项目pom文件均引入springboot的web模块
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3、编写springcloud-member配置文件、服务启动类、Controller
3.1 application.yml
server:
port: 9081
3.2 服务启动类MemberApp.class
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class MemberApp {
// 手动注入RestTemplate实例
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(MemberApp.class, args);
}
}
3.3 MemberController.class
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
@RequestMapping("/member")
public class MemberController {
//注入RestTemplate
@Autowired
private RestTemplate template;
//RestTemplate访问远程接口
@GetMapping("/getOrderInfo")
public String getOrderInfo() {
return template.getForObject("http://localhost:9071/order/orderInfo", String.class);
}
}
4、编写springcloud-order配置文件、服务启动类、Controller
4.1 application.yml
server:
port: 9071
4.2 服务启动类OrderApp.class
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class OrderApp {
public static void main(String[] args) {
SpringApplication.run(OrderApp.class, args);
}
}
4.3 OrderController.class
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/order")
public class OrderController {
@GetMapping("/orderInfo")
public String OrderInfo() {
return "this is Order Info";
}
}
5、使用RestTemplate访问远程接口
5.1 实例化RestTemplate Bean对象
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
5.2 注入RestTemplate Bean对象
@Autowired
private RestTemplate template;
5.3 通过getForObject方法调用远程接口
template.getForObject(url,class);
Url:远程接口地址
Class:接口返回值类型
如:
template.getForObject("http://localhost:9071/order/orderInfo", String.class);
6、启动两个聚合项目启动类OrderApp、MemberApp
访问地址:localhost:9071/order/orderInfo
访问地址:localhost:9081/member/getOrderInfo