Package org.springframework.jndi

# Class JndiPropertySource

java.lang.Object
org.springframework.core.env.PropertySource<JndiLocatorDelegate>
org.springframework.jndi.JndiPropertySource

public class JndiPropertySource extends org.springframework.core.env.PropertySource<JndiLocatorDelegate>
`PropertySource` implementation that reads properties from an underlying Spring `JndiLocatorDelegate`.

By default, the underlying `JndiLocatorDelegate` will be configured with its `"resourceRef"` property set to `true`, meaning that names looked up will automatically be prefixed with "java:comp/env/" in alignment with published JNDI naming conventions. To override this setting or to change the prefix, manually configure a `JndiLocatorDelegate` and provide it to one of the constructors here that accepts it. The same applies when providing custom JNDI properties. These should be specified using `JndiAccessor.setJndiEnvironment(java.util.Properties)` prior to construction of the `JndiPropertySource`.

Note that `StandardServletEnvironment` includes a `JndiPropertySource` by default, and any customization of the underlying `JndiLocatorDelegate` may be performed within an `ApplicationContextInitializer` or `WebApplicationInitializer`.

Since:
  3.1
Author:
  Chris Beams, Juergen Hoeller
See Also:
  - `JndiLocatorDelegate`
  - `ApplicationContextInitializer`
  - `org.springframework.web.WebApplicationInitializer`
  - `org.springframework.web.context.support.StandardServletEnvironment`

## Nested Class Summary

## Nested classes/interfaces inherited from class org.springframework.core.env.PropertySource

`org.springframework.core.env.PropertySource.StubPropertySource`

## Field Summary

### Fields inherited from class org.springframework.core.env.PropertySource

`logger, name, source`

## Constructor Summary

Constructors
Constructor
Description
`JndiPropertySource(String name)`
Create a new `JndiPropertySource` with the given name and a `JndiLocatorDelegate` configured to prefix any names with "java:comp/env/".
`JndiPropertySource(String name, JndiLocatorDelegate jndiLocator)`
Create a new `JndiPropertySource` with the given name and the given `JndiLocatorDelegate`.

## Method Summary

Modifier and Type
Method
Description
`Object`
`getProperty(String name)`
This implementation looks up and returns the value associated with the given name from the underlying `JndiLocatorDelegate`.

### Methods inherited from class org.springframework.core.env.PropertySource

`containsProperty, equals, getName, getSource, hashCode, named, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### JndiPropertySource

public JndiPropertySource(String name)
Create a new `JndiPropertySource` with the given name and a `JndiLocatorDelegate` configured to prefix any names with "java:comp/env/".

### JndiPropertySource

public JndiPropertySource(String name, JndiLocatorDelegate jndiLocator)
Create a new `JndiPropertySource` with the given name and the given `JndiLocatorDelegate`.

## Method Details

### getProperty

@Nullable public Object getProperty(String name)
This implementation looks up and returns the value associated with the given name from the underlying `JndiLocatorDelegate`. If a `NamingException` is thrown during the call to `JndiLocatorDelegate.lookup(String)`, returns `null` and issues a DEBUG-level log statement with the exception message.

Specified by:
  `getProperty` in class `org.springframework.core.env.PropertySource<JndiLocatorDelegate>`