eureka项目:https://blog.csdn.net/qq_43154385/article/details/89458587
item项目
1、pom加入依赖
<!--springboot项目我用的1.5.9版本的--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!--导入eureka服务的依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </exclusion> </exclusions> </dependency> <!--导入springcloud的依赖管理-->
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.SR4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
2、配置文件
server.port=8082 server.context-path=/item spring.datasource.url=jdbc:mysql://localhost:3306/shopping spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=root spring.datasource.password=root mybatis.mapper-locations=classpath:mapping/*.xml mybatis.type-aliases-package=com.springcloud.item.pojo logging.level.com.springcloud.item.mapper=debug spring.devtools.restart.enabled=true #应用名称 spring.application.name=test-microservice-item #是否需要注册到注册中心中,默认值true eureka.client.registerWithEureka=true #是否从注册中心中获取注册信息,默认值true eureka.client.fetchRegistry=false #客户端和服务器端进行交互的地址 eureka.client.serviceUrl.defaultZone=http://root:root@127.0.0.1:8100/eureka/ #将自己的ip地址注册到Eureka服务中 eureka.instance.prefer-ip-address=true eureka.instance.lease-expiration-duration-in-seconds=1 eureka.instance.lease-renewal-interval-in-seconds=2
3、启动类上添加注解
order项目
1、pom加入依赖
<!--添加httpclient的依赖--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency> <!--添加okhttp的依赖--> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.9.0</version> </dependency> <!--添加eureka服务依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </exclusion> </exclusions> </dependency> <!--添加springcloud的依赖管理--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.SR4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
2、修改配置文件
server.port=8081 server.context-path=/order spring.datasource.url=jdbc:mysql://localhost:3306/shopping spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=root spring.datasource.password=root mybatis.mapper-locations=classpath:mapping/*.xml mybatis.type-aliases-package=com.springcloud.order.pojo logging.level.com.springcloud.order.mapper=debug spring.devtools.restart.enabled=true #应用名称 spring.application.name=test-microservice-order #是否将自己注册到注册中心 eureka.client.register-with-eureka=true #是否从注册中心获取注册消息 eureka.client.fetch-registry=true #表示eureka client间隔多久去拉取服务器注册信息,默认为30秒 eureka.client.registry-fetch-interval-seconds=30 eureka.client.serviceUrl.defaultZone=http://root:root@127.0.0.1:8100/eureka/ #test.item.microservice=http://localhost:8080/item/queryItemByItemId/ eureka.instance.lease-expiration-duration-in-seconds=10 eureka.instance.lease-renewal-interval-in-seconds=5 eureka.instance.metadata-map.company-name=eureka
3、orderServiceImpl里的业务操作
package com.springcloud.order.serviceImpl; import com.springcloud.order.mapper.OrderMapper; import com.springcloud.order.pojo.Item; import com.springcloud.order.pojo.Order; import com.springcloud.order.pojo.OrderDetail; import com.springcloud.order.service.OrderService; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.client.ServiceInstance; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.util.List; @Service public class OrderServiceImpl implements OrderService { @Resource private OrderMapper orderMapper; @Resource private RestTemplate restTemplate; @Transactional public Order queryOrderById(String userId) { //获取商品微服务服务列表 String itemServiceId = "test-microservice-item"; //发送请求 Order order = orderMapper.queryOrderById(userId); List<OrderDetail> list = orderMapper.queryOrderDetailByOrderId(order.getOrderid()); for (OrderDetail orderDetail : list) { String itemid = orderDetail.getItemid(); restTemplate.getForObject("http://test-microservice-item/item/queryItemByItemId/"+ itemid, Item.class); } return order; } }
4、启动类
package com.springcloud.order; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; @SpringBootApplication @MapperScan(basePackages = {"com.springcloud.order.mapper"}) @EnableDiscoveryClient public class OrderApplication { @Bean @LoadBalanced public RestTemplate restTemplate() { //return new RestTemplate(); //用第三方的通信组件okhttp return new RestTemplate(new OkHttp3ClientHttpRequestFactory()); } //http://127.0.0.1:8081/order/order/20190418001 public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } }