org.springframework.jndi
Class JndiPropertySource

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

public class JndiPropertySource
extends 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, WebApplicationInitializer, StandardServletEnvironment

Nested Class Summary
 
Nested classes/interfaces inherited from class org.springframework.core.env.PropertySource
PropertySource.StubPropertySource
 
Field Summary
 
Fields inherited from class org.springframework.core.env.PropertySource
logger, name, source
 
Constructor Summary
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
 Object getProperty(String name)
          Return the value associated with the given name, null if not found.
 
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 Detail

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 Detail

getProperty

public Object getProperty(String name)
Return the value associated with the given name, null if not found.

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 PropertySource<JndiLocatorDelegate>
Parameters:
name - the property to find
See Also:
PropertyResolver.getRequiredProperty(String)