diff --git a/src/main/java/org/springframework/samples/petclinic/config/RootApplicationContextConfig.java b/src/main/java/org/springframework/samples/petclinic/config/RootApplicationContextConfig.java index 254b3209c..da0add1b3 100644 --- a/src/main/java/org/springframework/samples/petclinic/config/RootApplicationContextConfig.java +++ b/src/main/java/org/springframework/samples/petclinic/config/RootApplicationContextConfig.java @@ -2,11 +2,9 @@ package org.springframework.samples.petclinic.config; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.ImportResource; @Configuration -@Import(BusinessConfig.class) -@ImportResource("classpath:spring/tools-config.xml") +@Import({BusinessConfig.class, ToolsConfig.class}) public class RootApplicationContextConfig { } diff --git a/src/main/java/org/springframework/samples/petclinic/config/ToolsConfig.java b/src/main/java/org/springframework/samples/petclinic/config/ToolsConfig.java new file mode 100644 index 000000000..c0cccb195 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/config/ToolsConfig.java @@ -0,0 +1,43 @@ +package org.springframework.samples.petclinic.config; + +import net.sf.ehcache.CacheManager; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.ehcache.EhCacheCacheManager; +import org.springframework.cache.ehcache.EhCacheManagerFactoryBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Description; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.context.annotation.EnableMBeanExport; +import org.springframework.core.io.ClassPathResource; +import org.springframework.samples.petclinic.util.CallMonitoringAspect; + +@Configuration +@EnableCaching // enables scanning for @Cacheable annotation +@EnableMBeanExport +@EnableAspectJAutoProxy +public class ToolsConfig { + + @Bean + @Description("Call monitoring aspect that monitors call count and call invocation time") + public CallMonitoringAspect callMonitor() { + return new CallMonitoringAspect(); + } + + @Bean + @Autowired + public EhCacheCacheManager ehCacheCacheManager(CacheManager cacheManager) { + EhCacheCacheManager ehCacheCacheManager = new EhCacheCacheManager(); + ehCacheCacheManager.setCacheManager(cacheManager); + return ehCacheCacheManager; + } + + @Bean + public EhCacheManagerFactoryBean cacheManager() { + EhCacheManagerFactoryBean ehCacheManager = new EhCacheManagerFactoryBean(); + ehCacheManager.setConfigLocation(new ClassPathResource("cache/ehcache.xml")); + return ehCacheManager; + } +} diff --git a/src/main/resources/spring/tools-config.xml b/src/main/resources/spring/tools-config.xml deleted file mode 100644 index 1be7e3b6c..000000000 --- a/src/main/resources/spring/tools-config.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file