Class LoadBalancerClientFactory

java.lang.Object
org.springframework.cloud.context.named.NamedContextFactory<LoadBalancerClientSpecification>
org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.DisposableBean, org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer.Factory<org.springframework.cloud.client.ServiceInstance>, org.springframework.context.ApplicationContextAware

public class LoadBalancerClientFactory extends org.springframework.cloud.context.named.NamedContextFactory<LoadBalancerClientSpecification> implements org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer.Factory<org.springframework.cloud.client.ServiceInstance>
A factory that creates client, load balancer and client configuration instances. It creates a Spring ApplicationContext per client name, and extracts the beans that it needs from there.
Author:
Spencer Gibb, Dave Syer, Olga Maciaszek-Sharma
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.springframework.cloud.context.named.NamedContextFactory

    org.springframework.cloud.context.named.NamedContextFactory.Specification
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Property source name for load balancer.
    static final String
    Property for client name within the load balancer namespace.
  • Constructor Summary

    Constructors
    Constructor
    Description
    LoadBalancerClientFactory(org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties properties)
     
    LoadBalancerClientFactory(org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties properties, Map<String, org.springframework.context.ApplicationContextInitializer<org.springframework.context.support.GenericApplicationContext>> applicationContextInitializers)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer<org.springframework.cloud.client.ServiceInstance>
    getInstance(String serviceId)
     
    static String
    getName(org.springframework.core.env.Environment environment)
     
    org.springframework.cloud.client.loadbalancer.LoadBalancerProperties
    getProperties(String serviceId)
     
    withApplicationContextInitializers(Map<String,Object> applicationContextInitializers)
     

    Methods inherited from class org.springframework.cloud.context.named.NamedContextFactory

    buildContext, createContext, destroy, generateDisplayName, getAnnotatedInstance, getConfigurations, getContext, getContextNames, getInstance, getInstance, getInstance, getInstances, getLazyProvider, getParent, getProvider, registerBeans, setApplicationContext, setConfigurations

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer.Factory

    getInstance, getInstances
  • Field Details

    • NAMESPACE

      public static final String NAMESPACE
      Property source name for load balancer.
      See Also:
    • PROPERTY_NAME

      public static final String PROPERTY_NAME
      Property for client name within the load balancer namespace.
      See Also:
  • Constructor Details

    • LoadBalancerClientFactory

      public LoadBalancerClientFactory(org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties properties)
    • LoadBalancerClientFactory

      public LoadBalancerClientFactory(org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties properties, Map<String, org.springframework.context.ApplicationContextInitializer<org.springframework.context.support.GenericApplicationContext>> applicationContextInitializers)
  • Method Details

    • getName

      public static String getName(org.springframework.core.env.Environment environment)
    • getInstance

      public org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer<org.springframework.cloud.client.ServiceInstance> getInstance(String serviceId)
      Specified by:
      getInstance in interface org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer.Factory<org.springframework.cloud.client.ServiceInstance>
    • getProperties

      public org.springframework.cloud.client.loadbalancer.LoadBalancerProperties getProperties(String serviceId)
      Specified by:
      getProperties in interface org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer.Factory<org.springframework.cloud.client.ServiceInstance>
    • withApplicationContextInitializers

      public LoadBalancerClientFactory withApplicationContextInitializers(Map<String,Object> applicationContextInitializers)