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


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信息會以日志的形式輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM