Eureka注册客户端
1.pom.xml
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.0.2.RELEASE</version> </dependency>
2.application.yaml
server: port: 8888 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&serverTimezone=UTC username: root password: application: name: user-service mybatis: type-aliases-package: cn.itcast.user.pojo eureka: client: service-url: defaultZone: http://127.0.0.1:8886/eureka
3.入口文件 UserApplication.java
package cn.itcast; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import tk.mybatis.spring.annotation.MapperScan; @EnableDiscoveryClient @SpringBootApplication @MapperScan("cn.itcast.user.mapper") public class UserApplication { public static void main(String[] args) { SpringApplication.run(UserApplication.class); } }
4.UserController.java
package cn.itcast.user.controller; import cn.itcast.user.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.util.List; @RestController @RequestMapping("consumer") public class UserController { @Autowired private RestTemplate restTemplate; @Autowired private DiscoveryClient discoveryClient; @GetMapping("{id}") public User queryUserById(@PathVariable("id") Long id){ List<ServiceInstance> instances = discoveryClient.getInstances("user-service"); ServiceInstance instance = instances.get(0); String url = "http://"+instance.getHost()+":"+instance.getPort()+"/user/" + id; User user = restTemplate.getForObject(url, User.class); return user; } }