@Override
	public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
		if (!ClassUtils.isPresent("com.netflix.discovery.DiscoveryClient", classLoader)) {
			return;
		}
		hints.reflection()
			.registerTypes(TypeReference.listOf(ApplicationInfoManager.class),
					hint -> hint.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS))
			.registerTypes(
					TypeReference.listOf(DiscoveryClient.class, EurekaHttpClientDecorator.class,
							InstanceInfo.ActionType.class, InstanceInfoJsonMixIn.class, SessionedEurekaHttpClient.class,
							RetryableEurekaHttpClient.class, AsyncResolver.class, Applications.class,
							TimedSupervisorTask.class),
					hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS,
							MemberCategory.INTROSPECT_DECLARED_METHODS))
			.registerTypes(
					TypeReference.listOf(EurekaEndpoint.class, EurekaHttpClientDecorator.RequestExecutor.class,
							EurekaClient.class, DiscoveryClient.class),
					hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS))
			.registerTypes(TypeReference.listOf(DataCenterTypeInfoResolver.class),
					hint -> hint.withMembers(MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS))
			.registerTypes(TypeReference.listOf(Application.class),
					hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INTROSPECT_DECLARED_METHODS,
							MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS))
			.registerTypes(TypeReference.listOf(DefaultEndpoint.class, EurekaHttpResponse.class, InstanceInfo.class,
					InstanceInfo.PortWrapper.class, LeaseInfo.class, MyDataCenterInfo.class, DataCenterInfo.class,
					DataCenterInfo.Name.class, ApplicationsJacksonBuilder.class, EurekaServiceInstance.class),
					hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS,
							MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
	}
@author Dave Syer
@author Spencer Gibb
@author Jon Schneider
@author Matt Jenkins
@author Ryan Baxter
@author Daniel Lavoie
@author Olga Maciaszek-Sharma
@author Tim Ysewyn
@author Robert Bleyl
spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java