添加主要依赖
使用Feign访问接口的配置,如果服务不在Eureka上,可以不加Eureka的依赖,用在FeignClient上指定url的方式访问
dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.cloud:spring-cloud-starter-feign') compile('org.springframework.cloud:spring-cloud-starter-eureka') compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.16.12' testCompile('org.springframework.boot:spring-boot-starter-test') }
gradle配置文件
buildscript { ext { springBootVersion = '1.5.8.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'org.springframework.boot' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.cloud:spring-cloud-starter-feign') compile('org.springframework.cloud:spring-cloud-starter-eureka') testCompile('org.springframework.boot:spring-boot-starter-test') } ext { springCloudVersion = 'Dalston.SR4' } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } }
配置文件中Eureka地址
(下面是yml文件的配置格式)
eureka: client: enabled: true #访问eureka服务时要打开 serviceUrl: defaultZone: http://localhost:8761/eureka/
Application主类添加注解
@EnableDiscoveryClient
@EnableFeignClients
@SpringBootApplication
public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
编写FeignClient接口
dp-dealer-shop是指定的应用名,不用Eureka的话不可以这样做,可以用指定一个Name和Url的方式调用接口
接口中不支持@GetMapping这样的简写,要用@RequestMapping的写法
@FeignClient("dp-dealer-shop") public interface Feign { @RequestMapping(method = RequestMethod.GET, value = "/api/quotation/v0/sendLargeRegionMail") List<AuditEmailContentDto> getLargeRegionMailContent(); }