快速业务通道

精通Grails: 在企业中使用Grails - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
。将 grails-app/conf/spring/resources.xml 重命名为 resources.xml.old。将如清单 11 所示的代码添加到 resources.groovy 中:

清单 11. 使用 Bean Builder 配置 Spring

import  org.springframework.jmx.support.MBeanServerFactoryBean import org.springframework.jmx.export.MBeanExporter import org.apache.log4j.jmx.HierarchyDynamicMBean beans = {   log4jBean(HierarchyDynamicMBean)   mbeanServer(MBeanServerFactoryBean) {    locateExistingServerIfPossible=true   }   exporter(MBeanExporter) {    server = mbeanServer    beans = ["log4j:hierarchy=default":log4jBean]   } }

如您所见,Spring bean 使用 Groovy 代码(而不是 XML)配置的。您已经在 “Grails 与遗留数据 库” 和 “RESTful Grails” 中看到现实中的 Groovy MarkupBuilder。主题有点变化 — 一个专门为 Spring 配置定义 bean 的 Bean Builder。

重新启动 Grails 和 JConsole。确认 XML 配置中没有任何更改。

使用 XML 来配置 Spring 可以轻松运用 Web 各种优势 — 可以从大量源复制粘贴代码片段。但是使 用 Bean Builder 更符合 Grail 中的其余配置。使用 Grails 到现在,您已经看到了 DataSource.groovy、Config.groovy、BootStrap.groovy 和 Events.groovy,这只是其中一小部分。在 代码中进行配置,这意味着您可以执行一些操作,比如基于运行的环境有条件地呈现 MBean。

例如,清单 12 显示了如何在生产环境中呈现 log4jBean,但在开发环境中隐藏它:

清单 12. 有条件地呈现 JMX bean

import  org.springframework.jmx.support.MBeanServerFactoryBean import org.springframework.jmx.export.MBeanExporter import org.apache.log4j.jmx.HierarchyDynamicMBean import grails.util.GrailsUtil  beans = {   log4jBean(HierarchyDynamicMBean)   mbeanServer(MBeanServerFactoryBean) {    locateExistingServerIfPossible=true   }   switch(GrailsUtil.environment){    case "development":    break    case "production":     exporter(MBeanExporter) {      server = mbeanServer      beans = ["log4j:hierarchy=default":log4jBean]     }    break   } }

输入 grails run-app 并在 JConsole 中确定 log4j MBean 没有出现在开发模式中。现在输入 grails prod run-app(或 grails war 并将 WAR 文件部署到您选择的应用服务器)。这个 MBean 会一 直等待您重新启动 JConsole。

精通Grails: 在企业中使用Grails(10)

时间:2011-08-02 IBM Scott Davis

Groovy 中的 JMX

我最后要向您展示的是如何以编程方式调试 JMX MBean。JConsole GUI 非常漂亮,能够从 Groovy 脚 本进行更改更是增加了它的魅力。

开始之前,创建一个名为 testJmx.groovy 的文件,将清单 13 中的代码添加到该文件中:

清单 13. 在 Groovy 中调用一个远程 JMX 代理

import  javax.management.MBeanServerConnection import javax.management.remote.JMXConnectorFactory import javax.management.remote.JMXServiceURL  def agentUrl = "service:jmx:rmi:///jndi/rmi://localhost:9004/jmxrmi" def connector = JMXConnectorFactory.connect(new JMXServiceURL(agentUrl)) def server = connector.mBeanServerConnection println "Number of registered MBeans: ${server.mBeanCount}" println "\nRegistered Domains:" server.dom

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号