Сбор статистики Hibernate / Ehcache и предоставление ее через JMX в настройках на основе Spring кажется простым.В Интернете есть много ресурсов, которые помогают, например, http://snippets.dzone.com/posts/show/11159
Однако все эти статьи предполагают, что одна из них работает с какой-то фабрикой сеансов Hibernate.Я не - мои сущности аннотированы JPA, и я использую javax.persistence.EntityManager
.Если бы я развертывал в контейнер Java EE, я мог бы получить фабрику сеансов Hibernate через JNDI, как описано здесь http://internna.blogspot.com/2007/08/hibernate-statistics-in-enterprise-5.html, но я на Tomcat ...
Как это сделатьэтот?Я еще не нашел решение.
Если бы у меня была ссылка на Ehcache CacheManager
, я мог бы попробовать что-то вроде:
<context:mbean-server />
<bean class="net.sf.ehcache.management.ManagementService" init-method="init">
<constructor-arg ref="..myCacheManager.."/>
<constructor-arg ref="mbeanServer"/>
<constructor-arg value="true"/>
<constructor-arg value="true"/>
<constructor-arg value="true"/>
<constructor-arg value="true"/>
</bean>
Поскольку менеджер кэша создаетсяHibernate (т.е. это не бин Spring) не будет работать.Я попытался заменить эту ссылку на
<constructor-arg><bean id="cacheManager" class="net.sf.ehcache.CacheManager" factory-method="getInstance"/></constructor-arg>
, надеясь, что каким-то образом поймаю нужный экземпляр.Также не будет работать, поскольку это фактически создаст новый экземпляр диспетчера кэша.