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:
- Filter
- public class OpenPersistenceManagerInViewFilter
- extends 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 works similar to the AOP JdoInterceptor: It just makes JDO
PersistenceManagers available via the thread. It is suitable for
non-transactional execution but also for middle tier transactions via
JdoTransactionManager or JtaTransactionManager. In the latter case,
PersistenceManagers pre-bound by this filter will automatically be used
for the transactions.
Looks up the PersistenceManagerFactory in Spring's root web application context.
Supports a "persistenceManagerFactoryBeanName" filter init-param; 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
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 String DEFAULT_PERSISTENCE_MANAGER_FACTORY_BEAN_NAME
- See Also:
- Constant Field Values
OpenPersistenceManagerInViewFilter
public OpenPersistenceManagerInViewFilter()
setPersistenceManagerFactoryBeanName
public void setPersistenceManagerFactoryBeanName(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 String getPersistenceManagerFactoryBeanName()
- Return the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context.
doFilterInternal
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response,
FilterChain filterChain)
throws ServletException,
IOException
- Description copied from class:
OncePerRequestFilter
- Same contract as for doFilter, but guaranteed to be just invoked once per
request. Provides HttpServletRequest and HttpServletResponse arguments
instead of the default ServletRequest and ServletResponse ones.
- Specified by:
doFilterInternal
in class OncePerRequestFilter
- Throws:
ServletException
IOException
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 SessionFactory to use
- See Also:
getPersistenceManagerFactoryBeanName()
Copyright (C) 2003-2004 The Spring Framework Project.