spring cloud 服务消费者
spring cloud 服务消费者
1.pom依赖
父pom dependencyManagement
<dependencyManagement>
<dependencies>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-dependencies
</artifactId>
<version>
Greenwich.RELEASE
</version>
<type>
pom
</type>
<scope>
import
</scope>
</dependency>
</dependencies>
</dependencyManagement>
服务消费者pom
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
</dependencies>
2.application.properties
server.port=8090
spring.application.name=cloud3
#注册服务的地址
eureka.client.service-url.defaultZone=http://localhost:8080/eureka/
3.主要代码`
@SpringBootApplication
@EnableEurekaClient
public class SpringCloud3Application {
public static void main(String[] args) {
SpringApplication.run(SpringCloud3Application.class,args);
}
}
@LoadBalanced 用于负载均衡
@Configuration
public class RestTemplateConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
注意 http:// 后直接跟服务提供者项目名 + 接口地址
@RestController
@RequestMapping("test")
public class TestController {
@Autowired
RestTemplate restTemplate;
@GetMapping("a")
public ResponseEntity test(){
String result = restTemplate.getForEntity("http://cloud1/test/a",String.class).getBody();
return ResponseEntity.ok(result);
}
}
启动项目后请求接口
第一次
第二次