一.搭建Eureka服务步骤
1.创建Eureka项目并导入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
2.配置yml文件
server: port: 10086 #端口 spring: application: name: eurekaserver #服务名称 eureka: client: service-url: #eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka fetch-registry: false register-with-eureka: false
二.Eureka注册中心
1.在服务项目(user-service)和要拉取该接口的项目(order-service)中都引入eureka依赖
<!-- eureka依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2.配置yml文件
spring: application: name: orderservice #服务名称 eureka: client: service-url: defaultZone: http://127.0.0.1:10086/eureka/
三.拉取服务接口
1.首先在OrderApplication中创建RestTemplate,并注入SpringBoot容器
@MapperScan("cn.itcast.order.mapper") @SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } @Autowired private RestTemplate restTemplate; /** * 创建RestTemplate,并注入SpringBoot容器 * @return */ @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
2.在Service层进行代码更改
@Service public class OrderService { @Autowired private OrderMapper orderMapper; @Autowired private RestTemplate restTemplate; public Order queryOrderById(Long orderId) { // 1.查询订单 Order order = orderMapper.findById(orderId); //2.查询用RestTemplate查询用户 String url = "http://userservice/user/"+order.getUserId(); //restTemplate帮助两个服务之间发送http请求 User user = restTemplate.getForObject(url, User.class); //3.封装User order.setUser(user); // 4.返回 return order; } }