parent
a12ebbfded
commit
40d88fd991
|
|
@ -88,7 +88,6 @@ class AnnotationDrivenCacheBeanDefinitionParser implements BeanDefinitionParser
|
||||||
def.setBeanClassName(CACHE_ASPECT_CLASS_NAME);
|
def.setBeanClassName(CACHE_ASPECT_CLASS_NAME);
|
||||||
def.setFactoryMethodName("aspectOf");
|
def.setFactoryMethodName("aspectOf");
|
||||||
parseCacheManagerProperty(element, def);
|
parseCacheManagerProperty(element, def);
|
||||||
CacheNamespaceHandler.parseKeyGenerator(element, def);
|
|
||||||
parserContext.registerBeanComponent(new BeanComponentDefinition(def, CACHE_ASPECT_BEAN_NAME));
|
parserContext.registerBeanComponent(new BeanComponentDefinition(def, CACHE_ASPECT_BEAN_NAME));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -116,6 +115,7 @@ class AnnotationDrivenCacheBeanDefinitionParser implements BeanDefinitionParser
|
||||||
interceptorDef.setSource(eleSource);
|
interceptorDef.setSource(eleSource);
|
||||||
interceptorDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
interceptorDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||||
parseCacheManagerProperty(element, interceptorDef);
|
parseCacheManagerProperty(element, interceptorDef);
|
||||||
|
CacheNamespaceHandler.parseKeyGenerator(element, interceptorDef);
|
||||||
interceptorDef.getPropertyValues().add("cacheOperationSources", new RuntimeBeanReference(sourceName));
|
interceptorDef.getPropertyValues().add("cacheOperationSources", new RuntimeBeanReference(sourceName));
|
||||||
String interceptorName = parserContext.getReaderContext().registerWithGeneratedName(interceptorDef);
|
String interceptorName = parserContext.getReaderContext().registerWithGeneratedName(interceptorDef);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,11 @@ import static org.junit.Assert.*;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.aop.framework.AopProxyUtils;
|
import org.springframework.aop.framework.AopProxyUtils;
|
||||||
import org.springframework.cache.Cache;
|
import org.springframework.cache.Cache;
|
||||||
import org.springframework.cache.CacheManager;
|
import org.springframework.cache.CacheManager;
|
||||||
import org.springframework.cache.interceptor.CacheInterceptor;
|
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||||
|
|
||||||
|
|
@ -286,10 +284,4 @@ public abstract class AbstractAnnotationTests {
|
||||||
public void testClassUncheckedException() throws Exception {
|
public void testClassUncheckedException() throws Exception {
|
||||||
testUncheckedThrowable(ccs);
|
testUncheckedThrowable(ccs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testKeyStrategy() throws Exception {
|
|
||||||
CacheInterceptor bean = ctx.getBean("cacheAdviceClass", CacheInterceptor.class);
|
|
||||||
Assert.assertSame(ctx.getBean("keyGenerator"), bean.getKeyGenerator());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -16,6 +16,11 @@
|
||||||
|
|
||||||
package org.springframework.cache.config;
|
package org.springframework.cache.config;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.cache.interceptor.CacheInterceptor;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Costin Leau
|
* @author Costin Leau
|
||||||
|
|
@ -27,4 +32,10 @@ public class AnnotationNamespaceDrivenTests extends AbstractAnnotationTests {
|
||||||
return "/org/springframework/cache/config/annotationDrivenCacheNamespace.xml";
|
return "/org/springframework/cache/config/annotationDrivenCacheNamespace.xml";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testKeyStrategy() throws Exception {
|
||||||
|
CacheInterceptor ci = ctx.getBean("org.springframework.cache.interceptor.CacheInterceptor#0",
|
||||||
|
CacheInterceptor.class);
|
||||||
|
Assert.assertSame(ctx.getBean("keyGenerator"), ci.getKeyGenerator());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
package org.springframework.cache.config;
|
package org.springframework.cache.config;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Costin Leau
|
* @author Costin Leau
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,10 @@
|
||||||
|
|
||||||
package org.springframework.cache.config;
|
package org.springframework.cache.config;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.cache.interceptor.CacheInterceptor;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Costin Leau
|
* @author Costin Leau
|
||||||
|
|
@ -27,4 +31,10 @@ public class CacheAdviceNamespaceTests extends AbstractAnnotationTests {
|
||||||
protected String getConfig() {
|
protected String getConfig() {
|
||||||
return "/org/springframework/cache/config/cache-advice.xml";
|
return "/org/springframework/cache/config/cache-advice.xml";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testKeyStrategy() throws Exception {
|
||||||
|
CacheInterceptor bean = ctx.getBean("cacheAdviceClass", CacheInterceptor.class);
|
||||||
|
Assert.assertSame(ctx.getBean("keyGenerator"), bean.getKeyGenerator());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,4 +40,6 @@
|
||||||
|
|
||||||
<bean id="classService" class="org.springframework.cache.config.AnnotatedClassCacheableService"/>
|
<bean id="classService" class="org.springframework.cache.config.AnnotatedClassCacheableService"/>
|
||||||
|
|
||||||
|
<bean id="keyGenerator" class="org.springframework.cache.config.SomeKeyGenerator"/>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
|
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
|
||||||
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
|
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
|
||||||
|
|
||||||
<cache:annotation-driven proxy-target-class="false" order="0"/>
|
<cache:annotation-driven proxy-target-class="false" order="0" key-generator="keyGenerator"/>
|
||||||
|
|
||||||
<aop:config>
|
<aop:config>
|
||||||
<aop:advisor advice-ref="debugInterceptor" pointcut="execution(* *..CacheableService.*(..))" order="1"/>
|
<aop:advisor advice-ref="debugInterceptor" pointcut="execution(* *..CacheableService.*(..))" order="1"/>
|
||||||
|
|
@ -27,4 +27,6 @@
|
||||||
|
|
||||||
<bean id="classService" class="org.springframework.cache.config.AnnotatedClassCacheableService"/>
|
<bean id="classService" class="org.springframework.cache.config.AnnotatedClassCacheableService"/>
|
||||||
|
|
||||||
|
<bean id="keyGenerator" class="org.springframework.cache.config.SomeKeyGenerator"/>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue