我有一个Tomcat实例,我已经部署了ehcache-server。现在我发出休息请求来从我的独立Java类中放入/获取元素。一切都按预期工作。
现在我想监控缓存。我理解ehcache-server提供了多个类的mbeans。但我几乎找不到有关如何注册这些mbeans的任何信息。
当我启动jconsole时,我可以看到Tomcat实例并连接到它。但我没有看到ehcache-server的任何类(net.sf.ehache。*)。
文档说我可以使用函数registerMBeans
来注册mbeans。但是如何从我的独立Java应用程序中调用Web应用程序中的方法?
恐怕我完全误解了这一点。我可以使用一些关于如何注册mbeans并进行监控的指针。
提前致谢。
答案 0 :(得分:0)
实际上很简单。将此添加到您的Web项目中的配置文件下方
@Configuration
@EnableCaching
public class SpringCachePocConfig implements CachingConfigurer {
net.sf.ehcache.CacheManager newCacheManager;
@Bean(destroyMethod = "shutdown")
public net.sf.ehcache.CacheManager ehCacheManager() {
//Construct you cache here.
net.sf.ehcache.config.Configuration config = new net.sf.ehcache.config.Configuration();
config.addCache(<Your cache>);
this.newCacheManager = new net.sf.ehcache.CacheManager(config);
return newCacheManager;
}
@Bean
public ManagementService managementService() {
return new ManagementService(ehCacheManager(), mbeanServer(), true, true, true, true);
}
@Bean
@Override
public CacheManager cacheManager() {
return new EhCacheCacheManager(ehCacheManager());
}
@Bean
public MBeanServer mbeanServer() {
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
return mBeanServer;
}
@PostConstruct
public void init() {
ManagementService.registerMBeans(ehCacheManager(), mbeanServer(), true, true, true, true);
}
}
init()
函数将注册您的MBean。不要忘记在@PostConstruct
方法上方添加init()
注释