org.springframework.orm.jdo.support
Class OpenPersistenceManagerInViewFilter
java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
org.springframework.orm.jdo.support.OpenPersistenceManagerInViewFilter
- All Implemented Interfaces:
- javax.servlet.Filter, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.context.EnvironmentAware, org.springframework.web.context.ServletContextAware
public class OpenPersistenceManagerInViewFilter
- extends org.springframework.web.filter.OncePerRequestFilter
Servlet 2.3 Filter that binds a JDO PersistenceManager to the thread for the
entire processing of the request. Intended for the "Open PersistenceManager in
View" pattern, i.e. to allow for lazy loading in web views despite the
original transactions already being completed.
This filter makes JDO PersistenceManagers available via the current thread,
which will be autodetected by transaction managers. It is suitable for service
layer transactions via JdoTransactionManager
or JtaTransactionManager
as well
as for non-transactional read-only execution.
Looks up the PersistenceManagerFactory in Spring's root web application context.
Supports a "persistenceManagerFactoryBeanName" filter init-param in web.xml
;
the default bean name is "persistenceManagerFactory". Looks up the PersistenceManagerFactory
on each request, to avoid initialization order issues (when using ContextLoaderServlet,
the root application context will get initialized after this filter).
- Since:
- 1.1
- Author:
- Juergen Hoeller
- See Also:
OpenPersistenceManagerInViewInterceptor
,
JdoInterceptor
,
JdoTransactionManager
,
PersistenceManagerFactoryUtils.getPersistenceManager(javax.jdo.PersistenceManagerFactory, boolean)
,
TransactionSynchronizationManager
Fields inherited from class org.springframework.web.filter.OncePerRequestFilter |
ALREADY_FILTERED_SUFFIX |
Fields inherited from class org.springframework.web.filter.GenericFilterBean |
logger |
Method Summary |
protected void |
doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.servlet.FilterChain filterChain)
|
protected java.lang.String |
getPersistenceManagerFactoryBeanName()
Return the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context. |
protected javax.jdo.PersistenceManagerFactory |
lookupPersistenceManagerFactory()
Look up the PersistenceManagerFactory that this filter should use. |
protected javax.jdo.PersistenceManagerFactory |
lookupPersistenceManagerFactory(javax.servlet.http.HttpServletRequest request)
Look up the PersistenceManagerFactory that this filter should use,
taking the current HTTP request as argument. |
void |
setPersistenceManagerFactoryBeanName(java.lang.String persistenceManagerFactoryBeanName)
Set the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context. |
Methods inherited from class org.springframework.web.filter.OncePerRequestFilter |
doFilter, getAlreadyFilteredAttributeName, shouldNotFilter |
Methods inherited from class org.springframework.web.filter.GenericFilterBean |
addRequiredProperty, afterPropertiesSet, destroy, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_PERSISTENCE_MANAGER_FACTORY_BEAN_NAME
public static final java.lang.String DEFAULT_PERSISTENCE_MANAGER_FACTORY_BEAN_NAME
- See Also:
- Constant Field Values
OpenPersistenceManagerInViewFilter
public OpenPersistenceManagerInViewFilter()
setPersistenceManagerFactoryBeanName
public void setPersistenceManagerFactoryBeanName(java.lang.String persistenceManagerFactoryBeanName)
- Set the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context. Default is "persistenceManagerFactory".
- See Also:
DEFAULT_PERSISTENCE_MANAGER_FACTORY_BEAN_NAME
getPersistenceManagerFactoryBeanName
protected java.lang.String getPersistenceManagerFactoryBeanName()
- Return the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context.
doFilterInternal
protected void doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.servlet.FilterChain filterChain)
throws javax.servlet.ServletException,
java.io.IOException
- Specified by:
doFilterInternal
in class org.springframework.web.filter.OncePerRequestFilter
- Throws:
javax.servlet.ServletException
java.io.IOException
lookupPersistenceManagerFactory
protected javax.jdo.PersistenceManagerFactory lookupPersistenceManagerFactory(javax.servlet.http.HttpServletRequest request)
- Look up the PersistenceManagerFactory that this filter should use,
taking the current HTTP request as argument.
Default implementation delegates to the lookupPersistenceManagerFactory
without arguments.
- Returns:
- the PersistenceManagerFactory to use
- See Also:
lookupPersistenceManagerFactory()
lookupPersistenceManagerFactory
protected javax.jdo.PersistenceManagerFactory lookupPersistenceManagerFactory()
- Look up the PersistenceManagerFactory that this filter should use.
The default implementation looks for a bean with the specified name
in Spring's root application context.
- Returns:
- the PersistenceManagerFactory to use
- See Also:
getPersistenceManagerFactoryBeanName()