@Override
	public String resolveCircuitBreakerName(String feignClientName, Target<?> target, Method method) {
		String serviceName = target.name();
		String path = "";

		// Get path in @FeignClient.
		if (StringUtils.hasText(target.url())) {
			URI uri = null;
			try {
				uri = new URI(target.url());
			}
			catch (URISyntaxException e) {
				LOG.warn("Generate URI from url({}) in @FeignClient. failed.", target.url());
			}
			if (uri != null) {
				path += uri.getPath();
			}
		}

		// Get path in @RequestMapping.
		RequestMapping requestMapping = findMergedAnnotation(method, RequestMapping.class);
		if (requestMapping != null) {
			path += requestMapping.path().length == 0 ?
					requestMapping.value().length == 0 ? "" : requestMapping.value()[0] :
					requestMapping.path()[0];
		}
		return "".equals(path) ?
				MetadataContext.LOCAL_NAMESPACE + "#" + serviceName :
				MetadataContext.LOCAL_NAMESPACE + "#" + serviceName + "#" + path;
	}
@Test
	public void test3() {
		Target target = mock(Target.class);
		doReturn("test-svc").when(target).name();
		Method method = ReflectionUtils.findMethod(PolarisCircuitBreakerNameResolverTest.class, "mockRequestMapping3");
		PolarisCircuitBreakerNameResolver resolver = new PolarisCircuitBreakerNameResolver();
		String polarisCircuitBreakerName = resolver.resolveCircuitBreakerName("test", target, method);
		assertThat(polarisCircuitBreakerName).isEqualTo("Test#test-svc#/");
	}