`
sunxboy
  • 浏览: 2828425 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JMX in spring 配置

阅读更多

JConsole中的连接:简单的localhost:1099 或 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

服务端配置

1. 可以在Java命令行里定义, 如:

-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.port=1099
 

在生产环境,最好再带上密码控制:

-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.password.file=conf\jmxremote.password -Dcom.sun.management.jmxremote.access.file=conf\jmxremote.access
 

 

jmxremote.password与jmxremote.access文件参见showcase/assembly/conf/production目录

         安全原因这两个文件要求只读,在windows下可用此命令设置  cacls jmxremote.password /P your_login_name:R

 

2. 在spring的ApplicationContext中定义

使用MBean方式见ServerConfigMBean与ServerConfig,定义符合XXXMBean接口与XXX实现命名规则的类即可。

        使用annotation方式见TraceMBean,Log4jMBean与QueueHolder:

 

@ManagedResource(objectName = "SpringSide:type=Log4jManagement,name=log4jManagement", description = "Log4j Management Bean")
public class Log4jMBean {	       @ManagedAttribute(description = "Logging level of the root logger")
	public String getRootLoggerLevel() {
		Logger root = Logger.getRootLogger();
		return root.getLevel().toString();
	}  	@ManagedOperation(description = "Set the new logging level to the logger")
	@ManagedOperationParameters( { @ManagedOperationParameter(name = "loggerName", description = "Logger name"),
			@ManagedOperationParameter(name = "newlevel", description = "New level") })
	public void setLoggerLevel(String loggerName, String newLevel) {
		Logger logger = Logger.getLogger(loggerName);
		Level level = Level.toLevel(newLevel);
		logger.setLevel(level);
	}

 

 

使用了Spring的自动导出  <context:mbean-export default-domain="Showcase" registration="replaceExisting" />,快速导出所有用annotation标注的MBean. 另外所有其中接口与实现的命名规则需符合默认的 XXXMBean(接口) 与 XXX(实现)的也被被默认导出.

        使用用annotation可以随意自定义MBean的命名空间,而使用MBean定义时则默认为到Custom, 如果需要改变,则需要在applicationContext.xml放弃快速的JMX namespace方式,改为较长的方式,在xml中定义object name.

 

 

 

分享到:
评论

相关推荐

    Spring in Action(第2版)中文版

    16.1.3委托spring配置的动作 16.1.4关于struts2 16.2协同使用spring和webwork2/struts2 16.3集成spring和tapestry 16.3.1集成spring和tapestry3 16.3.2集成spring和tapestry4 16.4协同使用spring和jsf 16.4.1...

    Spring in Action(第二版 中文高清版).part2

    16.1.3 委托Spring配置的动作 16.1.4 关于Struts 2 16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用...

    Spring in Action(第二版 中文高清版).part1

    16.1.3 委托Spring配置的动作 16.1.4 关于Struts 2 16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...

    Spring Boot实战 ,丁雪丰 (译者) 中文版

    3.1 覆盖Spring Boot自动配置 42 3.1.1 保护应用程序 43 3.1.2 创建自定义的安全配置 44 3.1.3 掀开自动配置的神秘面纱 48 3.2 通过属性文件外置配置 49 3.2.1 自动配置微调 50 3.2.2 应用程序...

    Spring中文帮助文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    Spring API

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    spring chm文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...

    springboot参考指南

    从Spring配置分离@Entity定义 v. 67.5. 配置JPA属性 vi. 67.6. 使用自定义的EntityManagerFactory vii. 67.7. 使用两个EntityManagers viii. 67.8. 使用普通的persistence.xml ix. 67.9. 使用Spring Data JPA和...

    支持多数据库的ORM框架ef-orm.zip

    EF的设计的一个主要目的是提高开发效率,减少编码工作,让开发者“零配置”“少编码”的操作数据库大部分功能。 例如:数据库查询条件的传入问题是所有ORM框架都不能回避的一个问题,所以我经常在想——既然我们...

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...

Global site tag (gtag.js) - Google Analytics