Package org.springframework.jndi.support

# Class SimpleJndiBeanFactory

java.lang.Object
org.springframework.jndi.JndiAccessor
org.springframework.jndi.JndiLocatorSupport
org.springframework.jndi.support.SimpleJndiBeanFactory

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

public class SimpleJndiBeanFactory extends JndiLocatorSupport implements org.springframework.beans.factory.BeanFactory
Simple JNDI-based implementation of Spring's `BeanFactory` interface. Does not support enumerating bean definitions, hence doesn't implement the `ListableBeanFactory` interface.

This factory resolves given bean names as JNDI names within the Jakarta EE application's "java:comp/env/" namespace. It caches the resolved types for all obtained objects, and optionally also caches shareable objects (if they are explicitly marked as `shareable resource`).

The main intent of this factory is usage in combination with Spring's `CommonAnnotationBeanPostProcessor`, configured as "resourceFactory" for resolving `@Resource` annotations as JNDI objects without intermediate bean definitions. It may be used for similar lookup scenarios as well, of course, in particular if BeanFactory-style type checking is required.

Since:
  2.5
Author:
  Juergen Hoeller
See Also:
  - `DefaultListableBeanFactory`
  - `CommonAnnotationBeanPostProcessor`

## Field Summary

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

`CONTAINER_PREFIX`

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

`logger`

### Fields inherited from interface org.springframework.beans.factory.BeanFactory

`FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHAR`

## Constructor Summary

Constructors
Constructor
Description
`SimpleJndiBeanFactory()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addShareableResource(String shareableResource)`
Add the name of a shareable JNDI resource, which this factory is allowed to cache once obtained.
`boolean`
`containsBean(String name)`
`String[]`
`getAliases(String name)`
`<T> T`
`getBean(Class<T> requiredType)`
`<T> T`
`getBean(Class<T> requiredType, Object... args)`
`Object`
`getBean(String name)`
`<T> T`
`getBean(String name, Class<T> requiredType)`
`Object`
`getBean(String name, Object... args)`
`<T> org.springframework.beans.factory.ObjectProvider<T>`
`getBeanProvider(Class<T> requiredType)`
`<T> org.springframework.beans.factory.ObjectProvider<T>`
`getBeanProvider(org.springframework.core.ResolvableType requiredType)`
`Class<?>`
`getType(String name)`
`Class<?>`
`getType(String name, boolean allowFactoryBeanInit)`
`boolean`
`isPrototype(String name)`
`boolean`
`isSingleton(String name)`
`boolean`
`isTypeMatch(String name, Class<?> typeToMatch)`
`boolean`
`isTypeMatch(String name, org.springframework.core.ResolvableType typeToMatch)`
`void`
`setShareableResources(String... shareableResources)`
Set a list of names of shareable JNDI resources, which this factory is allowed to cache once obtained.

### 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

### SimpleJndiBeanFactory

public SimpleJndiBeanFactory()

## Method Details

### addShareableResource

public void addShareableResource(String shareableResource)
Add the name of a shareable JNDI resource, which this factory is allowed to cache once obtained.

Parameters:
  `shareableResource` - the JNDI name (typically within the "java:comp/env/" namespace)

### setShareableResources

public void setShareableResources(String... shareableResources)
Set a list of names of shareable JNDI resources, which this factory is allowed to cache once obtained.

Parameters:
  `shareableResources` - the JNDI names (typically within the "java:comp/env/" namespace)

### getBean

public Object getBean(String name) throws org.springframework.beans.BeansException

Specified by:
  `getBean` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.BeansException`

### getBean

public <T> T getBean(String name, Class<T> requiredType) throws org.springframework.beans.BeansException

Specified by:
  `getBean` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.BeansException`

### getBean

public Object getBean(String name, @Nullable Object... args) throws org.springframework.beans.BeansException

Specified by:
  `getBean` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.BeansException`

### getBean

public <T> T getBean(Class<T> requiredType) throws org.springframework.beans.BeansException

Specified by:
  `getBean` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.BeansException`

### getBean

public <T> T getBean(Class<T> requiredType, @Nullable Object... args) throws org.springframework.beans.BeansException

Specified by:
  `getBean` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.BeansException`

### getBeanProvider

public <T> org.springframework.beans.factory.ObjectProvider<T> getBeanProvider(Class<T> requiredType)

Specified by:
  `getBeanProvider` in interface `org.springframework.beans.factory.BeanFactory`

### getBeanProvider

public <T> org.springframework.beans.factory.ObjectProvider<T> getBeanProvider(org.springframework.core.ResolvableType requiredType)

Specified by:
  `getBeanProvider` in interface `org.springframework.beans.factory.BeanFactory`

### containsBean

public boolean containsBean(String name)

Specified by:
  `containsBean` in interface `org.springframework.beans.factory.BeanFactory`

### isSingleton

public boolean isSingleton(String name) throws org.springframework.beans.factory.NoSuchBeanDefinitionException

Specified by:
  `isSingleton` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.factory.NoSuchBeanDefinitionException`

### isPrototype

public boolean isPrototype(String name) throws org.springframework.beans.factory.NoSuchBeanDefinitionException

Specified by:
  `isPrototype` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.factory.NoSuchBeanDefinitionException`

### isTypeMatch

public boolean isTypeMatch(String name, org.springframework.core.ResolvableType typeToMatch) throws org.springframework.beans.factory.NoSuchBeanDefinitionException

Specified by:
  `isTypeMatch` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.factory.NoSuchBeanDefinitionException`

### isTypeMatch

public boolean isTypeMatch(String name, @Nullable Class<?> typeToMatch) throws org.springframework.beans.factory.NoSuchBeanDefinitionException

Specified by:
  `isTypeMatch` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.factory.NoSuchBeanDefinitionException`

### getType

@Nullable public Class<?> getType(String name) throws org.springframework.beans.factory.NoSuchBeanDefinitionException

Specified by:
  `getType` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.factory.NoSuchBeanDefinitionException`

### getType

@Nullable public Class<?> getType(String name, boolean allowFactoryBeanInit) throws org.springframework.beans.factory.NoSuchBeanDefinitionException

Specified by:
  `getType` in interface `org.springframework.beans.factory.BeanFactory`
Throws:
  `org.springframework.beans.factory.NoSuchBeanDefinitionException`

### getAliases

public String[] getAliases(String name)

Specified by:
  `getAliases` in interface `org.springframework.beans.factory.BeanFactory`