|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.jndi.JndiAccessor org.springframework.jndi.JndiLocatorSupport org.springframework.jndi.JndiObjectLocator org.springframework.jndi.JndiObjectTargetSource
TargetSource which performs a fresh JNDI lookup for each call.
Can be used as alternative to JndiObjectFactoryBean, to allow for relocating a JNDI object lazily or for each operation (see "lookupOnStartup" and "cache" properties). This is particularly useful during development, as it allows for hot restarting of the JNDI server (for example, a remote JMS server).
Example:
<bean id="queueConnectionFactoryTarget" class="org.springframework.jndi.JndiObjectTargetSource"> <property name="jndiName"><value>JmsQueueConnectionFactory</value></property> <property name="lookupOnStartup"><value>false</value></property> </bean> <bean id="queueConnectionFactory" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"><value>javax.jms.QueueConnectionFactory</value></property> <property name="targetSource"><ref bean="queueConnectionFactoryTarget"/></property> </bean>A
createQueueConnection
call on the "queueConnectionFactory" proxy will
cause a lazy JNDI lookup for "JmsQueueConnectionFactory" and a subsequent delegating
call to the retrieved QueueConnectionFactory's createQueueConnection
.
Alternatively, use a JndiObjectFactoryBean with a "proxyInterface". "lookupOnStartup" and "cache" can then be specified on the JndiObjectFactoryBean, creating a JndiObjectTargetSource underneath (instead of defining separate ProxyFactoryBean and JndiObjectTargetSource beans).
setLookupOnStartup(boolean)
,
setCache(boolean)
,
AdvisedSupport.setTargetSource(org.springframework.aop.TargetSource)
,
JndiObjectFactoryBean.setProxyInterface(java.lang.Class)
Field Summary |
Fields inherited from class org.springframework.jndi.JndiLocatorSupport |
CONTAINER_PREFIX |
Fields inherited from class org.springframework.jndi.JndiAccessor |
logger |
Constructor Summary | |
JndiObjectTargetSource()
|
Method Summary | |
void |
afterPropertiesSet()
Check the jndiName property and initiate a lookup. |
Object |
getTarget()
Return a target instance. |
Class |
getTargetClass()
Return the type of targets returned by this TargetSource. |
boolean |
isStatic()
Will all calls to getTarget() return the same object?
|
void |
releaseTarget(Object target)
Release the given target object obtained from the getTarget() method. |
void |
setCache(boolean cache)
Set whether to cache the JNDI object once it has been located. |
void |
setLookupOnStartup(boolean lookupOnStartup)
Set whether to look up the JNDI object on startup. |
Methods inherited from class org.springframework.jndi.JndiObjectLocator |
getJndiName, lookup, setJndiName |
Methods inherited from class org.springframework.jndi.JndiLocatorSupport |
convertJndiName, isResourceRef, lookup, setResourceRef |
Methods inherited from class org.springframework.jndi.JndiAccessor |
getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public JndiObjectTargetSource()
Method Detail |
public void setLookupOnStartup(boolean lookupOnStartup)
Can be turned off to allow for late availability of the JNDI object. In this case, the JNDI object will be fetched on first access.
setCache(boolean)
public void setCache(boolean cache)
Can be turned off to allow for hot redeployment of JNDI objects. In this case, the JNDI object will be fetched for each invocation.
setLookupOnStartup(boolean)
public void afterPropertiesSet() throws NamingException
JndiObjectLocator
The JNDI object will thus be fetched eagerly on initialization.
For refreshing the JNDI object, subclasses can invoke lookup
at any later time.
afterPropertiesSet
in interface InitializingBean
afterPropertiesSet
in class JndiObjectLocator
NamingException
JndiObjectLocator.lookup()
public Class getTargetClass()
TargetSource
getTargetClass
in interface TargetSource
public boolean isStatic()
TargetSource
getTarget()
return the same object?
In that case, there will be no need to invoke releaseTarget
,
and the AOP framework can cache the return value of getTarget()
.
isStatic
in interface TargetSource
TargetSource.getTarget()
public Object getTarget() throws NamingException
TargetSource
getTarget
in interface TargetSource
NamingException
public void releaseTarget(Object target)
TargetSource
getTarget()
method.
releaseTarget
in interface TargetSource
target
- object obtained from a call to getTarget()
TargetSource.getTarget()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |