Package org.springframework.jndi

# Class JndiObjectLocator

java.lang.Object
org.springframework.jndi.JndiAccessor
org.springframework.jndi.JndiLocatorSupport
org.springframework.jndi.JndiObjectLocator

All Implemented Interfaces:
  `org.springframework.beans.factory.InitializingBean`

Direct Known Subclasses:
  `JndiObjectFactoryBean`, `JndiObjectTargetSource`

public abstract class JndiObjectLocator extends JndiLocatorSupport implements org.springframework.beans.factory.InitializingBean
Convenient superclass for JNDI-based service locators, providing configurable lookup of a specific JNDI resource.

Exposes a `"jndiName"` property. This may or may not include the "java:comp/env/" prefix expected by Jakarta EE applications when accessing a locally mapped (Environmental Naming Context) resource. If it doesn't, the "java:comp/env/" prefix will be prepended if the "resourceRef" property is true (the default is false) and no other scheme (for example, "java:") is given.

Subclasses may invoke the `lookup()` method whenever it is appropriate. Some classes might do this on initialization, while others might do it on demand. The latter strategy is more flexible in that it allows for initialization of the locator before the JNDI object is available.

Since:
  1.1
Author:
  Juergen Hoeller
See Also:
  - `setJndiName(java.lang.String)`
  - `JndiAccessor.setJndiTemplate(org.springframework.jndi.JndiTemplate)`
  - `JndiAccessor.setJndiEnvironment(java.util.Properties)`
  - `JndiLocatorSupport.setResourceRef(boolean)`
  - `lookup()`

## Field Summary

### Fields inherited from class org.springframework.jndi.JndiLocatorSupport

`CONTAINER_PREFIX`

### Fields inherited from class org.springframework.jndi.JndiAccessor

`logger`

## Constructor Summary

Constructors
Constructor
Description
`JndiObjectLocator()`

## Method Summary

Modifier and Type
Method
Description
`void`
`afterPropertiesSet()`
`Class<?>`
`getExpectedType()`
Return the type that the located JNDI object is supposed to be assignable to, if any.
`String`
`getJndiName()`
Return the JNDI name to look up.
`protected Object`
`lookup()`
Perform the actual JNDI lookup for this locator's target resource.
`void`
`setExpectedType(Class<?> expectedType)`
Specify the type that the located JNDI object is supposed to be assignable to, if any.
`void`
`setJndiName(String jndiName)`
Specify the JNDI name to look up.

### Methods inherited from class org.springframework.jndi.JndiLocatorSupport

`convertJndiName, isResourceRef, lookup, 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 Details

### JndiObjectLocator

public JndiObjectLocator()

## Method Details

### setJndiName

public void setJndiName(@Nullable String jndiName)
Specify the JNDI name to look up. If it doesn't begin with "java:comp/env/" this prefix is added automatically if "resourceRef" is set to "true".

Parameters:
  `jndiName` - the JNDI name to look up
See Also:
  - `JndiLocatorSupport.setResourceRef(boolean)`

### getJndiName

@Nullable public String getJndiName()
Return the JNDI name to look up.

### setExpectedType

public void setExpectedType(@Nullable Class<?> expectedType)
Specify the type that the located JNDI object is supposed to be assignable to, if any.

### getExpectedType

@Nullable public Class<?> getExpectedType()
Return the type that the located JNDI object is supposed to be assignable to, if any.

### afterPropertiesSet

public void afterPropertiesSet() throws IllegalArgumentException, NamingException

Specified by:
  `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
Throws:
  `IllegalArgumentException`
  `NamingException`

### lookup

protected Object lookup() throws NamingException
Perform the actual JNDI lookup for this locator's target resource.

Returns:
  the located target object
Throws:
  `NamingException` - if the JNDI lookup failed or if the located JNDI object is not assignable to the expected type
See Also:
  - `setJndiName(java.lang.String)`
  - `setExpectedType(java.lang.Class<?>)`
  - `JndiLocatorSupport.lookup(String, Class)`