1创建父工程nacos-discovery
pom文件
<groupId>cn.yh.nacos</groupId>
<artifactId>nacos-discovery</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>provider</module>
<module>consumer</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.服务提供者
pom文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
cn.yh.nacos.provider.controller.RestController
@RestController
@RequestMapping("/provider")
public class Restcontroller {
@GetMapping("/service")
public String service(){
return "提供者方法";
}
}
resources
server:
port: 100
启动类
cn.yh.nacos.ProviderBootstrap
@SpringBootApplication
public class ProviderBootstrap {
public static void main(String[] args) {
SpringApplication.run(ProviderBootstrap.class);
}
}
测试:
3.服务消费方
pom文件
引入web启动器依赖
cn.yh.nacos.sumer.controller.RestController
@org.springframework.web.bind.annotation.RestController
@RequestMapping("/consumer")
public class RestController {
@Autowired
RestTemplate restTemplate;
@Value("${provider.address}")
String address;
@GetMapping("/service")
public String service(){
//调用服务提供方
String forObject = restTemplate.getForObject("http://"+address+"/provider/service", String.class);
return "消费方执行了"+forObject;
}
}
RestTemplate是Spring提供的用于访问Rest服务的客户端,它提供了很多可以方便访问远程http服务的方法,这些方法可以帮助开发人员减少编写客户端代码的工作量。
resources
server:
port: 200
#指定服务提供方地址
provider:
address: 127.0.0.1:100
启动类(声明了RestTemplate对象)
@SpringBootApplication
public class ConsumerBootstrap {
public static void main(String[] args) {
SpringApplication.run(ConsumerBootstrap.class);
}
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
测试:消费方调用提供方