feign三:覆寫feign的默認配置及feign的日志
默認配置復寫

本項目地址:http://192.168.1.103:7601
本例是通過feign調用 eureka項目中的/eureka/apps/,獲取相關項目的說明信息
http://localhost:8761/eureka/apps

1.首先需要在入口app處添加feign注解:@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
@EnableFeignClients
public class FeignApp {
public static void main(String[] args) {
SpringApplication.run(FeignApp.class, args);
}
}
2.創建feign復寫的配置:FooConfiguration2
@Configuration
public class FooConfiguration2 {
/**
* 配置Url用戶和密碼,當eureka啟用用戶名和密碼時
* @return
*/
/*@Bean
public BasicAuthRequestInterceptor basicAuthRequestInterceptor()
{
return new BasicAuthRequestInterceptor("root", "root123");
}*/
//默認配置
@Bean
public Contract getContract()
{
return new feign.Contract.Default();
}
}
3.創建調用的client: UserFeignClient2
注意:@FeignClient 配置說明
當@FeignClient有name和url還有configuration時,取值為url的地址,name只是為一個名稱而已(無意義)
當@FeignClient只有name和configuration時,name的取值為eureka中的application項目的名稱即虛擬地址
/**
* 當@FeignClient有name和url還有configuration時,取值為url的地址,name只是為一個名稱而已(無意義)
* 當@FeignClient只有name和configuration時,name的取值為eureka中的application項目的名稱即虛擬地址
* @author Administrator
*
*/
@FeignClient(name="boot-user", url="http://localhost:8761", configuration=FooConfiguration2.class)
public interface UserFeignClient2 {
@RequestLine("GET /eureka/apps/{serviceName}")
public String findServiceInfoFromEurekaByServiceName(@Param("serviceName") String serviceName);
//@RequestLine("GET /simple/{id}")
//public User findById(@Param("id") Long id);
}
5.controller調用client
@RestController
public class UserController {
@Autowired
private UserFeignClient userFeignClient;
@Autowired
private UserFeignClient2 userFeignClient2;
@GetMapping("/simple/{id}")
public User findById(@PathVariable Long id) {
return this.userFeignClient.findById(id);
}
//@GetMapping("/sip/{id}")
//public User findByIdSip(@PathVariable Long id)
//{
// return this.userFeignClient2.findById(id);
//}
@GetMapping("/eureka/apps/{serviceName}")
public String findEurekaInfo(@PathVariable String serviceName) {
return this.userFeignClient2.findServiceInfoFromEurekaByServiceName(serviceName);
}
}
調用:
http://192.168.1.103:7601/eureka/apps/SPRING-BOOT-USER
Feign日志添加:
1.在配置文件applicaton.propreties文件中添加配置
#loging.level.+Feign客戶端路徑 logging.level.com.muyang.bootmovie.feign.UserFeignClient2=debug
注意上面的內容:loggin的配置:
loging.level.+Feign客戶端路徑
com.muyang.bootmovie.feign.UserFeignClient2 ,client是我controller需要調用的
2.在復寫的configureration加入logger的bean注解
//feign日志配置
@Bean
Logger.Level feignLoggerLevel()
{
return Logger.Level.FULL;
}
3.在實際訪問:http://192.168.1.103:7601/eureka/apps/SPRING-BOOT-USER時
在訪問http://192.168.1.103:7601/eureka/apps/SPRING-BOOT-USER時得出的xml/string信息會以日志的形式輸出

