我最终写了下面的课
HibernateStatisticsJmxRegistration
import javax.management.JMException;import javax.management.MBeanServer;import javax.management.ObjectName;import javax.persistence.EntityManagerFactory;import org.hibernate.SessionFactory;import org.hibernate.ejb.HibernateEntityManagerFactory;import org.hibernate.jmx.StatisticsService;import org.springframework.beans.factory.annotation.Autowired;@SuppressWarnings({"deprecation", "javadoc" })public class HibernateStatisticsJmxRegistration { @Autowired private EntityManagerFactory entityManagerFactory; @Autowired private MBeanServer mbeanServer; private ObjectName objectName; private String jmxObjectName = "org.hibernate:name=HibernateStatistics"; public void register() throws JMException { final SessionFactory sessionFactory = ((HibernateEntityManagerFactory) entityManagerFactory).getSessionFactory(); objectName = new ObjectName(jmxObjectName); final StatisticsService statsMBean = new StatisticsService(); statsMBean.setSessionFactory(sessionFactory); statsMBean.setStatisticsEnabled(true); mbeanServer.registerMBean(statsMBean, objectName); } public void unregister() throws JMException { mbeanServer.unregisterMBean(objectName); } public void setJmxObjectName(String jmxObjectName) { this.jmxObjectName = jmxObjectName; }}弹簧配置
<!-- Setting up Ehcache manager for various caches (offer facade, images). --><bean id="ehCacheManager" > <property name="configLocation" value="classpath:ehcache.xml" /></bean> <ehcache:annotation-driven cache-manager="ehCacheManager" /><!-- Exposing cache statistics through JMX. --><context:mbean-server /><bean init-method="init"> <constructor-arg ref="ehCacheManager"/> <constructor-arg ref="mbeanServer"/> <constructor-arg value="true"/> <constructor-arg value="true"/> <constructor-arg value="true"/> <constructor-arg value="true"/></bean> <bean init-method="register" destroy-method="unregister" />



