当前位置: 首页 > news >正文

杭州互联网网站公司wordpress免费主题

杭州互联网网站公司,wordpress免费主题,北京网站建设公司华网天下下,网站建设技术文档介绍 Java Agent技术 Java Agent技术是JDK提供的用来编写Java工具的技术#xff0c;使用这种技术生成一种特殊的jar包#xff0c;这种jar包可以让Java程序 运行其中的代码。 Java Agent技术的两种模式 Java Agent技术实现了让Java程序执行独立的Java Agent程序中的代码…介绍 Java Agent技术 Java Agent技术是JDK提供的用来编写Java工具的技术使用这种技术生成一种特殊的jar包这种jar包可以让Java程序 运行其中的代码。 Java Agent技术的两种模式 Java Agent技术实现了让Java程序执行独立的Java Agent程序中的代码执行方式有两种 ⚫ 静态加载模式 ⚫ 动态加载模式 Java Agent技术的两种模式 - 静态加载模式 静态加载模式可以在程序启动的一开始就执行我们需要执行的代码适合用APM等性能监测系统从一开始就监控程序 的执行性能。静态加载模式需要在Java Agent的项目中编写一个premain的方法并打包成jar包。 接下来使用以下命令启动Java程序此时Java虚拟机将会加载agent中的代码并执行 premain方法会在主线程中执行 Java Agent技术的两种模式 – 动态加载模式 动态加载模式可以随时让java agent代码执行适用于Arthas等诊断系统。动态加载模式需要在Java Agent的项目中编 写一个agentmain的方法并打包成jar包 接下来使用以下代码就可以让java agent代码在指定的java进程中执行了。 agentmain方法会在独立线程中执行 搭建java agent静态加载模式的环境 步骤 1、创建maven项目添加maven-assembly-plugin插件此插件可以打包出java agent的jar包。 2、编写类和premain方法premain方法中打印一行信息。 3、编写MANIFEST.MF文件此文件主要用于描述java agent的配置属性比如使用哪一个类的 premain方法。 4、使用maven-assembly-plugin进行打包。 5、创建spring boot应用并静态加载上一步打包完的java agent。 步骤1-4 代码使用jdk17编辑: 目录结构: maven 项目 pom.xml 文件关注代码点插件位置 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIditheima-agent/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/properties buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-assembly-plugin/artifactIdconfiguration!--将所有依赖都打入同一个jar包中--descriptorRefsdescriptorRefjar-with-dependencies/descriptorRef/descriptorRefs!--指定java agent相关配置文件--archivemanifestFilesrc/main/resources/MANIFEST.MF/manifestFile/archive/configuration/plugin/plugins /build/projectAgenMain.java package com.zss.javaagent;import java.lang.instrument.Instrumentation;public class AgenMain {// premain方法public static void premain(String agentArgs, Instrumentation inst){System.out.println(【remain执行了】);}// premain方法public static void agentmain(String agentArgs, Instrumentation inst){System.out.println(【agentmain执行了】);} } MANIFEST.MF Manifest-Version: 1.0 Premain-Class: com.zss.javaagent.AgenMain Agent-Class: com.zss.javaagent.AgenMain Can-Redefine-Classes: true Can-Retransform-Classes: true Can-Set-Native-Method-Prefix: true 进行打包 步骤5: 创建springboot项目 JavaAgentTestController.java package com.example.testdemo.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** java -jar -javaagent:D:/jvm/itheima-jvm-java-agent-jar-with-dependencies.jar .\spring-boot-demo-0.0.1-SNAPSHOT.jar*/ RestController Controller public class JavaAgentTestController {GetMapping(/test1)public String test1(String name) {return test1;} } TestdemoApplication.java package com.example.testdemo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;import java.nio.ByteBuffer;SpringBootApplication public class TestdemoApplication {public static void main(String[] args) {System.out.println(main方法执行了...);SpringApplication.run(TestdemoApplication.class, args);}} pom文件中我只添加了这个依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency打包操作 启动jar包 java -jar .\testdemo-0.0.1-SNAPSHOT.jar此时日志只显示main方法执行了… 退出程序 Ctrlc 如何启动jar包之前启动agent连接到jar包呢需要再通过java agent命令将jar包引入进来 右键复制刚才agent jar包的绝对路径 可以发现已经打印出了agent包里面写的方法了 命令: java -jar -javaagent:E:\IEDA_DEMO\Study\jvm\javaagent\itheima-agent\target\itheima-agent-1.0-SNAPSHOT-jar-with-dependencies.jar .\testdemo-0.0.1-SNAPSHOT.jar上面是操作agent静态加载到jar包当中下面我们来看看动态加载 搭建java agent动态加载模式的环境 步骤 1、创建maven项目添加maven-assembly-plugin插件此插件可以打包出java agent的jar包。 2、编写类和agentmain方法 agentmain方法中打印一行信息。 3、编写MANIFEST.MF文件此文件主要用于描述java agent的配置属性比如使用哪一个类的 agentmain方法。 4、使用maven-assembly-plugin进行打包。 5、编写main方法动态连接到运行中的java程序。 首先刚才的启动springboot项目 打开cmd 使用jps 插看当前springboot程序的进程ID记录下来 进程ID为:28712 新建一个类为:AttachMain.java 将刚才查看的进程ID复制到 下面这段代码里另一个需要填写的则是agent jar包的绝对路径 package com.zss.javaagent;import com.sun.tools.attach.AgentInitializationException; import com.sun.tools.attach.AgentLoadException; import com.sun.tools.attach.AttachNotSupportedException; import com.sun.tools.attach.VirtualMachine;import java.io.IOException;public class AttachMain {public static void main(String[] args) throws IOException, AttachNotSupportedException, AgentLoadException, AgentInitializationException {//获取进程虚拟机对象 VirtualMachine attach VirtualMachine.attach(28712);// 执行 java agent 里面的agentmain 方法所以需要找到jar包的路径attach.loadAgent(E:\\IEDA_DEMO\\Study\\jvm\\javaagent\\itheima-agent\\target\\itheima-agent-1.0-SNAPSHOT-jar-with-dependencies.jar);} } 执行下main方法试试 这个项目扫描都没有输出因为这个链接的进程是隔壁springboot项目可以去隔壁看看 执行五次看看 是不是有点arthas连接已运行的程序并执行代码的味道了。
http://www.pierceye.com/news/382461/

相关文章:

  • 北京鲜花的网站建设做任务网站有哪些内容
  • 互联网营销网站建设印章在线生成
  • 厦门seo网站管理南宁广告网页设计人才招聘
  • 沂水住房与城乡建设局网站wordpress如何建立论坛
  • 贵州省文化旅游网站建设的必要性查网站流量的网址
  • 自己做的网站怎么传到空间啊平面设计技术培训机构
  • php 做网站xml地图回龙观手机网站开发服务
  • 四川建设工程网上合同备案网站如何重新打开wordpress
  • 免费个人网站模板下载qq邮箱企业邮箱注册
  • 泰兴市网站建设wp怎么打开wordpress
  • wordpress可以建哪些网站吗开发app需要多少人
  • 0基础学做网站什么做网站做个网站一般要多少钱啊
  • 外贸营销型网站建设多少钱wordpress付费浏览
  • 网站空间可以换吗进网站备案
  • 番禺建设网站开发软件工程专业介绍
  • 如何做网站定位网站建设报价新鸿儒
  • 商务网站建设包含了河北招投标公共服务平台
  • 高权重网站怎么发软文外贸平台app
  • nas服务器 做网站网页设计页面图片
  • 青海建设协会网站电子商务网站备案
  • 性价比高的广州网站建设不同用户入口的网站样板
  • 投资交易网站开发黑镜wordpress主题破解
  • 文化传媒公司网站建设西渡网站建设
  • 购物网站为什么做移动端seo优化快速排名
  • iis服务器网站301重定向怎么做国家企业信息公开网查询系统
  • 免费家具网站模板做网站去什么公司好
  • 五个网站南宁网页制作培训
  • 枣庄建设网站wordpress如何自己编辑
  • 河南省城乡住房建设厅网站首页哪个公司网站备案快
  • 湘潭做网站价格优选磐石网络微信里怎么进入自己的公众号