- 依賴springcloud版本
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
- 依賴eureka
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
</dependencies>
- 啟動類
@SpringBootApplication
@EnableEurekaClient
public class ConsumerMain {
public static void main(String[] args) {
SpringApplication.run(ConsumerMain.class, args);
}
}
- yml配置
server:
port: 8081
spring:
application:
name: consumer
eureka:
client:
register-with-eureka: false #調用方可以不注冊到服務中心
service-url:
defaultZone: http://localhost:7001/eureka/ #eureka的伺服器位址,多個以逗号分隔
- RestTemplate的注入
@Configuration //相當于在原先的spring applicationContext.xml配置
public class ConfigBean {
@Bean
@LoadBalanced //負載均衡 預設輪訓
public RestTemplate getRestTemplate(){
//restful操作的RestTemplate對象
return new RestTemplate();
}
}
- 調用方式
@RestController
public class ControllerConsumer {
@Autowired
private RestTemplate restTemplate;
//通過服務名通路 服務名字對應服務提供者的spring.application.name
private static final String RESTFUL_URL = "http://PROVIDERTEST";
@RequestMapping("/test")
public String test() {
return restTemplate.getForObject(RESTFUL_URL+"/test", String.class);
}
}