springboot+cloud子模块之间的服务的简单调用(非Eureka版本)
1.无需导入多余的依赖,因为发现与服务的包是org.springframework.web.client.RestTemplate,也就是web的包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2.比如已经有一个模块已经发布了,那么消费端的改动应该是:因为springboot推荐使用注解的方式,所以这里使用了配置类代替xml文件,创建注解类,把RestTemplate注入容器,这样就等于完成了微服务的注册
3.然后消费端创建Controller,利用自动注入的resstTemplate使用postForObject方法调用之前的模块已经发布的服务(另外的服务可以没有controller层,而本服务可以只有controller层,这样就简单的降低了耦合度),特别要留意注释的api详解!
下面的REST_URL_PREFIX常量是访问发布的提供者的地址
4.创建本模块的主启动类
1 package com.atguigu.springcloud; 2 3 4 import com.atguigu.springcloud.cfgbeans.ConfigBean; 5 import org.springframework.boot.SpringApplication; 6 import org.springframework.boot.autoconfigure.SpringBootApplication; 7 import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 8 import org.springframework.cloud.netflix.ribbon.RibbonClient; 9 10 @SpringBootApplication 11 //@EnableEurekaClient 12 //在启动该微服务的时候就能去加载我们的自定义Ribbon配置类,从而使配置生效 13 //@RibbonClient(name = "MICROSERVICECLOUD-DEPT",configuration = ConfigBean.class)//针对该微服务名字,配置类 14 public class DeptConsumer80_App { 15 public static void main(String[] args) { 16 SpringApplication.run(DeptConsumer80_App.class,args); 17 } 18 }