Class Overview
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).
Summary
Protected Methods |
void
|
doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
Same contract as for doFilter , but guaranteed to be
just invoked once per request.
|
String
|
getPersistenceManagerFactoryBeanName()
Return the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context.
|
PersistenceManagerFactory
|
lookupPersistenceManagerFactory(HttpServletRequest request)
Look up the PersistenceManagerFactory that this filter should use,
taking the current HTTP request as argument.
|
PersistenceManagerFactory
|
lookupPersistenceManagerFactory()
Look up the PersistenceManagerFactory that this filter should use.
|
[Expand]
Inherited Methods |
From class
org.springframework.web.filter.OncePerRequestFilter
final
void
|
doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
This doFilter implementation stores a request attribute for
"already filtered", proceeding without filtering again if the
attribute is already there.
|
abstract
void
|
doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
Same contract as for doFilter , but guaranteed to be
just invoked once per request.
|
String
|
getAlreadyFilteredAttributeName()
Return the name of the request attribute that identifies that a request
is already filtered.
|
boolean
|
shouldNotFilter(HttpServletRequest request)
Can be overridden in subclasses for custom filtering control,
returning true to avoid filtering of the given request.
|
|
From class
org.springframework.web.filter.GenericFilterBean
final
void
|
addRequiredProperty(String property)
Subclasses can invoke this method to specify that this property
(which must match a JavaBean property they expose) is mandatory,
and must be supplied as a config parameter.
|
void
|
afterPropertiesSet()
Calls the initFilterBean() method that might
contain custom initialization of a subclass.
|
void
|
destroy()
Subclasses may override this to perform custom filter shutdown.
|
final
FilterConfig
|
getFilterConfig()
Make the FilterConfig of this filter available, if any.
|
final
String
|
getFilterName()
Make the name of this filter available to subclasses.
|
final
ServletContext
|
getServletContext()
Make the ServletContext of this filter available to subclasses.
|
final
void
|
init(FilterConfig filterConfig)
Standard way of initializing this filter.
|
void
|
initBeanWrapper(BeanWrapper bw)
Initialize the BeanWrapper for this GenericFilterBean,
possibly with custom editors.
|
void
|
initFilterBean()
Subclasses may override this to perform custom initialization.
|
final
void
|
setBeanName(String beanName)
Stores the bean name as defined in the Spring bean factory.
|
void
|
setEnvironment(Environment environment)
Set the Environment that this object runs in.
Any environment set here overrides the DefaultWebEnvironment
provided by default.
|
final
void
|
setServletContext(ServletContext servletContext)
Stores the ServletContext that the bean factory runs in.
|
|
From class
java.lang.Object
Object
|
clone()
|
boolean
|
equals(Object arg0)
|
void
|
finalize()
|
final
Class<?>
|
getClass()
|
int
|
hashCode()
|
final
void
|
notify()
|
final
void
|
notifyAll()
|
String
|
toString()
|
final
void
|
wait()
|
final
void
|
wait(long arg0, int arg1)
|
final
void
|
wait(long arg0)
|
|
From interface
javax.servlet.Filter
abstract
void
|
destroy()
|
abstract
void
|
doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
|
abstract
void
|
init(FilterConfig arg0)
|
|
From interface
org.springframework.beans.factory.BeanNameAware
abstract
void
|
setBeanName(String name)
Set the name of the bean in the bean factory that created this bean.
|
|
From interface
org.springframework.beans.factory.DisposableBean
abstract
void
|
destroy()
Invoked by a BeanFactory on destruction of a singleton.
|
|
From interface
org.springframework.beans.factory.InitializingBean
abstract
void
|
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied
(and satisfied BeanFactoryAware and ApplicationContextAware).
|
|
From interface
org.springframework.context.EnvironmentAware
|
From interface
org.springframework.web.context.ServletContextAware
abstract
void
|
setServletContext(ServletContext servletContext)
Set the ServletContext that this object runs in.
|
|
Constants
public
static
final
String
DEFAULT_PERSISTENCE_MANAGER_FACTORY_BEAN_NAME
Constant Value:
"persistenceManagerFactory"
Public Constructors
public
OpenPersistenceManagerInViewFilter
()
Public Methods
public
void
setPersistenceManagerFactoryBeanName
(String persistenceManagerFactoryBeanName)
Set the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context. Default is "persistenceManagerFactory".
Protected Methods
protected
void
doFilterInternal
(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
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.
protected
String
getPersistenceManagerFactoryBeanName
()
Return the bean name of the PersistenceManagerFactory to fetch from Spring's
root application context.
protected
PersistenceManagerFactory
lookupPersistenceManagerFactory
(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
protected
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