Class AbstractRoutingConnectionFactory
java.lang.Object
org.springframework.amqp.rabbit.connection.AbstractRoutingConnectionFactory
- All Implemented Interfaces:
ConnectionFactory,RoutingConnectionFactory,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
SimpleRoutingConnectionFactory
public abstract class AbstractRoutingConnectionFactory
extends Object
implements ConnectionFactory, RoutingConnectionFactory, org.springframework.beans.factory.InitializingBean
Abstract
ConnectionFactory implementation that routes createConnection()
calls to one of various target ConnectionFactories based on a lookup key. The latter is usually
(but not necessarily) determined through some thread-bound context.- Since:
- 1.3
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConnectionListener(ConnectionListener listener) protected voidaddTargetConnectionFactory(Object key, ConnectionFactory connectionFactory) Adds the givenConnectionFactoryand associates it with the given lookup key.voidvoidprotected abstract ObjectDetermine the current lookup key.protected ConnectionFactoryRetrieve the current targetConnectionFactory.getHost()intgetPort()Returns theConnectionFactorybound to given lookup key, or null if one does not exist.booleanbooleanReturn true if publisher confirms are enabled.booleanReturn true if publisher returns are enabled.booleanremoveConnectionListener(ConnectionListener listener) protected ConnectionFactoryRemoves theConnectionFactoryassociated with the given lookup key and returns it.voidsetDefaultTargetConnectionFactory(ConnectionFactory defaultTargetConnectionFactory) Specify the default targetConnectionFactory, if any.voidsetLenientFallback(boolean lenientFallback) Specify whether to apply a lenient fallback to the defaultConnectionFactoryif no specificConnectionFactorycould be found for the current lookup key.voidsetTargetConnectionFactories(Map<Object, ConnectionFactory> targetConnectionFactories) Specify the map of target ConnectionFactories, with the lookup key as key.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.amqp.rabbit.connection.ConnectionFactory
getPublisherConnectionFactory, isSimplePublisherConfirms
-
Constructor Details
-
AbstractRoutingConnectionFactory
public AbstractRoutingConnectionFactory()
-
-
Method Details
-
setTargetConnectionFactories
Specify the map of target ConnectionFactories, with the lookup key as key.The key can be of arbitrary type; this class implements the generic lookup process only. The concrete key representation will be handled by
determineCurrentLookupKey().- Parameters:
targetConnectionFactories- The target connection factories and lookup keys.
-
setDefaultTargetConnectionFactory
Specify the default targetConnectionFactory, if any.This
ConnectionFactorywill be used as target if none of the keyedtargetConnectionFactoriesmatch thedetermineCurrentLookupKey()current lookup key.- Parameters:
defaultTargetConnectionFactory- The default target connection factory.
-
setLenientFallback
public void setLenientFallback(boolean lenientFallback) Specify whether to apply a lenient fallback to the defaultConnectionFactoryif no specificConnectionFactorycould be found for the current lookup key.Default is "true", accepting lookup keys without a corresponding entry in the
targetConnectionFactories- simply falling back to the defaultConnectionFactoryin that case.Switch this flag to "false" if you would prefer the fallback to only apply if the lookup key was
null. Lookup keys without aConnectionFactoryentry will then lead to anIllegalStateException.- Parameters:
lenientFallback- true to fall back to the default, if specified.- See Also:
-
isLenientFallback
public boolean isLenientFallback() -
isPublisherConfirms
public boolean isPublisherConfirms()Description copied from interface:ConnectionFactoryReturn true if publisher confirms are enabled.- Specified by:
isPublisherConfirmsin interfaceConnectionFactory- Returns:
- publisherConfirms.
-
isPublisherReturns
public boolean isPublisherReturns()Description copied from interface:ConnectionFactoryReturn true if publisher returns are enabled.- Specified by:
isPublisherReturnsin interfaceConnectionFactory- Returns:
- publisherReturns.
-
afterPropertiesSet
- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
Exception
-
createConnection
- Specified by:
createConnectionin interfaceConnectionFactory- Throws:
org.springframework.amqp.AmqpException
-
determineTargetConnectionFactory
Retrieve the current targetConnectionFactory. Determines thecurrent lookup key, performs a lookup in thetargetConnectionFactoriesmap, falls back to the specifieddefaultTargetConnectionFactoryif necessary.- Returns:
- The connection factory.
- See Also:
-
addConnectionListener
- Specified by:
addConnectionListenerin interfaceConnectionFactory
-
removeConnectionListener
- Specified by:
removeConnectionListenerin interfaceConnectionFactory
-
clearConnectionListeners
public void clearConnectionListeners()- Specified by:
clearConnectionListenersin interfaceConnectionFactory
-
getHost
- Specified by:
getHostin interfaceConnectionFactory
-
getPort
public int getPort()- Specified by:
getPortin interfaceConnectionFactory
-
getVirtualHost
- Specified by:
getVirtualHostin interfaceConnectionFactory
-
getUsername
- Specified by:
getUsernamein interfaceConnectionFactory
-
getTargetConnectionFactory
Description copied from interface:RoutingConnectionFactoryReturns theConnectionFactorybound to given lookup key, or null if one does not exist.- Specified by:
getTargetConnectionFactoryin interfaceRoutingConnectionFactory- Parameters:
key- The lookup key to which theConnectionFactoryis bound- Returns:
- the
ConnectionFactorybound to the given lookup key, or null if one does not exist
-
addTargetConnectionFactory
Adds the givenConnectionFactoryand associates it with the given lookup key.- Parameters:
key- the lookup key.connectionFactory- theConnectionFactory.
-
removeTargetConnectionFactory
Removes theConnectionFactoryassociated with the given lookup key and returns it.- Parameters:
key- the lookup key- Returns:
- the
ConnectionFactorythat was removed
-
determineCurrentLookupKey
Determine the current lookup key. This will typically be implemented to check a thread-bound context.- Returns:
- The lookup key.
-