Class DefaultManagedAwareThreadFactory
java.lang.Object
org.springframework.util.CustomizableThreadCreator
org.springframework.scheduling.concurrent.CustomizableThreadFactory
org.springframework.scheduling.concurrent.DefaultManagedAwareThreadFactory
- All Implemented Interfaces:
Serializable, ThreadFactory, InitializingBean
public class DefaultManagedAwareThreadFactory
extends CustomizableThreadFactory
implements InitializingBean
JNDI-based variant of
CustomizableThreadFactory, performing a default lookup
for JSR-236's "java:comp/DefaultManagedThreadFactory" in a Jakarta EE environment,
falling back to the local CustomizableThreadFactory setup if not found.
This is a convenient way to use managed threads when running in a Jakarta EE environment, simply using regular local threads otherwise - without conditional setup (i.e. without profiles).
Note: This class is not strictly JSR-236 based; it can work with any regular
ThreadFactory that can be found in JNDI. Therefore,
the default JNDI name "java:comp/DefaultManagedThreadFactory" can be customized
through the "jndiName" bean property.
- Since:
- 4.0
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidInvoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.voidsetJndiEnvironment(Properties jndiEnvironment) Set the JNDI environment to use for JNDI lookups.voidsetJndiName(String jndiName) Specify a JNDI name of theThreadFactoryto delegate to, replacing the default JNDI name "java:comp/DefaultManagedThreadFactory".voidsetJndiTemplate(JndiTemplate jndiTemplate) Set the JNDI template to use for JNDI lookups.voidsetResourceRef(boolean resourceRef) Set whether the lookup occurs in a Jakarta EE container, i.e.
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
DefaultManagedAwareThreadFactory
public DefaultManagedAwareThreadFactory()
-
-
Method Details
-
setJndiTemplate
Set the JNDI template to use for JNDI lookups.- See Also:
-
setJndiEnvironment
Set the JNDI environment to use for JNDI lookups.- See Also:
-
setResourceRef
public void setResourceRef(boolean resourceRef) Set whether the lookup occurs in a Jakarta EE container, i.e. if the prefix "java:comp/env/" needs to be added if the JNDI name doesn't already contain it. PersistenceAnnotationBeanPostProcessor's default is "true".- See Also:
-
setJndiName
Specify a JNDI name of theThreadFactoryto delegate to, replacing the default JNDI name "java:comp/DefaultManagedThreadFactory".This can either be a fully qualified JNDI name, or the JNDI name relative to the current environment naming context if "resourceRef" is set to "true".
- See Also:
-
afterPropertiesSet
Description copied from interface:InitializingBeanInvoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- Specified by:
afterPropertiesSetin interfaceInitializingBean- Throws:
NamingException
-
newThread
- Specified by:
newThreadin interfaceThreadFactory- Overrides:
newThreadin classCustomizableThreadFactory
-