一 、 feign的基本使用:
1.首先你需要在poml文件中配置:<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
2.然后创建一个接口`
public interface UserClient {
@RequestMapping(value=”/find/{id}”,method=RequestMethod.GET)
public User find(@PathVariable(“id”) Long id);
}
3.需要你在启动类上加@EnableFeignClients
4.最后创建Controlle类写实现
@RestController
public class MovieController {
@Autowired
private UserClient userClient;
@Autowired
private UserConfigClient userConfigClient;
@GetMapping("/movie/{id}")
public User find(@PathVariable Long id){
return this.userClient.find(id);
}
}
二、feign使用代码配置
1.首选你需要创建新的Configuration中配置的方法比如 UserFeignConfig
代码如下:
`package com.intmouch.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import feign.Contract;
import feign.Logger;
@Configuration
public class UserFeignConfig {
@Bean
public Contract feignContract() {
return new feign.Contract.Default();
}
@Bean
Logger.Level UserFeignConfig() {
return Logger.Level.FULL;
}
}
2.然后创建新的接口比如UserConfigClient ,其中FeignClient中的name对应是你要调用的服务名,configuration后面是上面已经实现的类,但是我们在实现的时候与上面默认基本是不一样比如:@RequestLine(“GET /find/{id}”)我们使用但是这个注解,前面是请求方式,后面是地址 并且在传参 的由PathVariable 改 Param
代码如下:`package com.intmouch.cloud.feign;
import org.springframework.cloud.netflix.feign.FeignClient;
import com.intmouch.cloud.model.User;
import com.intmouch.config.UserFeignConfig;
import feign.Param;
import feign.RequestLine;
@FeignClient(name=”microservice-li-provider-user”,configuration=UserFeignConfig.class)
public interface UserConfigClient {
@RequestLine(“GET /find/{id}”)
public User find(@Param(“id”) Long id);
}`
3.用上述的controller层测试就可以了。
三、日志的输出
1.在配置两个地方就可以了如下图所示:
总结:要是小伙伴有不懂的可以参考官方文档:
http://cloud.spring.io/spring-cloud-static/Camden.SR7/#_feign_request_response_compression