- 依赖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);
}
}