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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Invoked by the containingBeanFactory
after it has set all bean properties and satisfiedBeanFactoryAware
,ApplicationContextAware
etc.void
setJndiEnvironment
(Properties jndiEnvironment) Set the JNDI environment to use for JNDI lookups.void
setJndiName
(String jndiName) Specify a JNDI name of theThreadFactory
to delegate to, replacing the default JNDI name "java:comp/DefaultManagedThreadFactory".void
setJndiTemplate
(JndiTemplate jndiTemplate) Set the JNDI template to use for JNDI lookups.void
setResourceRef
(boolean resourceRef) Set whether the lookup occurs in a Jakarta EE container, i.e.Methods inherited from class org.springframework.util.CustomizableThreadCreator
createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadNamePrefix, setThreadPriority
-
Field Details
-
logger
-
-
Constructor Details
-
DefaultManagedAwareThreadFactory
public DefaultManagedAwareThreadFactory()
-
-
Method Details
-
setJndiTemplate
Set the JNDI template to use for JNDI lookups. -
setJndiEnvironment
Set the JNDI environment to use for JNDI lookups. -
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". -
setJndiName
Specify a JNDI name of theThreadFactory
to 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:InitializingBean
Invoked by the containingBeanFactory
after it has set all bean properties and satisfiedBeanFactoryAware
,ApplicationContextAware
etc.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:
afterPropertiesSet
in interfaceInitializingBean
- Throws:
NamingException
-
newThread
- Specified by:
newThread
in interfaceThreadFactory
- Overrides:
newThread
in classCustomizableThreadFactory
-