SpringCloud---SpringCloud Feign(一)

Feign Description:

         Consumers can go to the service call micro instance in Eureka by Feign component technology SpringCloud micro services of traditional interface-oriented programming.

Creating consumer module:

        pom.xml added web client coordinates Eureka coordinate coordinate Feign

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

         application.properties configuration Eureka address and name of the micro-service application instance

server.port=8081

#此module不进行注册
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

#自定义配置
#要消费的微服务实例的应用名称
provided_url=SERVICE

         Service layer, using micro Feign call service instance

/**
 * DESC :  通过Fegin调用微服务实例,实现传统的面向接口编程
 * @author Lonely
 *
 */
@FeignClient(value = "${provided_url}")  //Eureka注册中心的微服务实例应用名称
public interface TestService {

	//对应微服务实例中的接口路径
	@RequestMapping(value="/testcontroller.do/{id}/{name}",method=RequestMethod.GET)
	public String testController(@PathVariable("id") int id,@PathVariable("name") String name);

}

         Controller layer calls Service Layer

@Controller
public class TestController {
	
	
	@Autowired
	private TestService testService;     //调用Service层
	
	@RequestMapping(value="/testConsume.do/{id}/{name}",method=RequestMethod.GET)
	@ResponseBody
	public String test(@PathVariable("id") int id,@PathVariable("name") String name) {
		return testService.testController(id, name);
	}
	
}

        Start class, add annotations Feign scanning Eureka client notes 

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = "online.liema.service") //扫描使用 @FeignClient 注解的Service层
public class FeignApp {
	public static void main(String[] args) {
		SpringApplication.run(FeignApp.class, args);
	}
}

 

First turn starts three Eureka, in turn enable micro-service instances, and finally start Feign module, access Controller. Feign will be load-balanced, default polling algorithm.

 

 

 

Published 72 original articles · won praise 31 · views 20000 +

Guess you like

Origin blog.csdn.net/qq_39115469/article/details/104696031