<?xml version="1.0" encoding="UTF-8"?> <!-- Application context definition for PetClinic on JPA. --> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:cache="http://www.springframework.org/schema/cache" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- Simply defining this bean will cause requests to owner names to be saved. This aspect is defined in petclinic.jar's META-INF/aop.xml file. Note that we can dependency inject this bean like any other bean. --> <aop:aspectj-autoproxy> <aop:include name="callMonitor"/> </aop:aspectj-autoproxy> <!-- Call monitoring aspect that monitors call count and call invocation time --> <bean id="callMonitor" class="org.springframework.samples.petclinic.util.CallMonitoringAspect"/> <!-- Exporter that exposes the CallMonitoringAspect via JMX, based on the @ManagedResource, @ManagedAttribute, and @ManagedOperation annotations. --> <context:mbean-export/> <!-- enables scanning for @Cacheable annotation --> <cache:annotation-driven/> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> <property name="cacheManager" ref="ehcache"/> </bean> <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:cache/ehcache.xml"/> </bean> </beans>