Fix resource-chain XML syntax for cache
This change moves the resource-cache configuration to the <resource-chain/> tag, since enabling/disabling resource cache should be driven by a property or a SpEL expression. So now that configuration can be set with XML attributes: <mvc:resource-chain resource-cache="true" cache-manager="resourceCache" cache-name="test-resource-cache"> In order to mirror the JavaConfig behavior, the "resource-cache" attribute is required. Issue: SPR-12129
This commit is contained in:
@@ -200,8 +200,8 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser {
|
||||
private void parseResourceCache(ManagedList<? super Object> resourceResolvers,
|
||||
ManagedList<? super Object> resourceTransformers, Element element, Object source) {
|
||||
|
||||
Element resourceCacheElement = DomUtils.getChildElementByTagName(element, "resource-cache");
|
||||
if (resourceCacheElement != null) {
|
||||
String resourceCache = element.getAttribute("resource-cache");
|
||||
if ("true".equals(resourceCache)) {
|
||||
ConstructorArgumentValues cavs = new ConstructorArgumentValues();
|
||||
|
||||
RootBeanDefinition cachingResolverDef = new RootBeanDefinition(CachingResourceResolver.class);
|
||||
@@ -214,8 +214,8 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser {
|
||||
cachingTransformerDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
cachingTransformerDef.setConstructorArgumentValues(cavs);
|
||||
|
||||
String cacheManagerName = resourceCacheElement.getAttribute("cache-manager");
|
||||
String cacheName = resourceCacheElement.getAttribute("cache-name");
|
||||
String cacheManagerName = element.getAttribute("cache-manager");
|
||||
String cacheName = element.getAttribute("cache-name");
|
||||
if (StringUtils.hasText(cacheManagerName) && StringUtils.hasText(cacheName)) {
|
||||
RuntimeBeanReference cacheManagerRef = new RuntimeBeanReference(cacheManagerName);
|
||||
cavs.addIndexedArgumentValue(0, cacheManagerRef);
|
||||
|
||||
@@ -99,7 +99,7 @@ public class ResourceHandlerRegistration {
|
||||
*
|
||||
* @param cacheResources whether to cache the result of resource resolution;
|
||||
* setting this to "true" is recommended for production (and "false" for
|
||||
* development, especially when applying a version strategy.
|
||||
* development, especially when applying a version strategy).
|
||||
* @return the same {@link ResourceHandlerRegistration} instance for chained method invocation
|
||||
* @since 4.1
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user