<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Loading

      【Agent】Java Agent 介紹與使用

      什么是Java Agent

      Java Agent是在Java 1.5版本之才有的東西,他可以構(gòu)建一個(gè)獨(dú)立Java服務(wù)外的一個(gè)代理程序,也就是Agent。通常會(huì)用它來(lái)做一下Java服務(wù)的監(jiān)控,或者替換其他JVM上的程序,還可以實(shí)現(xiàn)虛擬機(jī)上的AOP功能。

      Agent分為兩種,一種是程序啟動(dòng)前觸發(fā)的,一種是程序啟動(dòng)后觸發(fā)的。

      編寫Agent

      接下來(lái)我們來(lái)看看如何使用
      首先我們創(chuàng)建一個(gè)Maven項(xiàng)目,同時(shí)在項(xiàng)目中編寫好這個(gè)類。

      public class TestAgent {
          public static void agentmain(String agentArgs,
                                     Instrumentation inst)throws Exception {
              // 注冊(cè)一個(gè) Transformer,該 Transformer在類加載時(shí)被調(diào)用
              inst.addTransformer(new com.xxx.Transformer(), true);
              inst.retransformClasses(TestClass.class);
              System.out.println("premain done");
          }
      
          public static void premain(String agentArgs) {
              System.out.println("this is a java agent only one args");
              System.out.println("參數(shù):" + agentArgs + "\n");
          }
      }
      

      如果agentmain存在重載的方法,將會(huì)忽略第二個(gè)方法,而執(zhí)行第第一個(gè)帶有Instrumentation方法。

      通過(guò)maven將Agent打包

      在pom文件中添加

      <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-assembly-plugin</artifactId>
                      <version>2.4</version>
                      <configuration>
                          <appendAssemblyId>false</appendAssemblyId>
                          <!-- 將TestAgent的所有依賴包都打到j(luò)ar包中-->
                          <descriptorRefs>
                              <descriptorRef>jar-with-dependencies</descriptorRef>
                          </descriptorRefs>
                          <archive>
                              <manifest><!-- 添加MANIFEST.MF中的各項(xiàng)配置-->
                                  <!-- 添加 mplementation-*和Specification-*配置項(xiàng)-->
                                  <addDefaultImplementationEntries>true
                                  </addDefaultImplementationEntries>
                                  <addDefaultSpecificationEntries>true
                                  </addDefaultSpecificationEntries>
                              </manifest>
                              <!-- 將 premain-class 配置項(xiàng)設(shè)置為com.xxx.TestAgent-->
                              <manifestEntries>
                                  <Can-Retransform-Classes>true</Can-Retransform-Classes>
                                  <Agent-Class>com.xxx.TestAgent</Agent-Class>
                              </manifestEntries>
                          </archive>
                      </configuration>
                      <executions>
                          <execution>
                              <!-- 綁定到package生命周期階段上 -->
                              <phase>package</phase>
                              <goals>
                                  <!-- 綁定到package生命周期階段上 -->
                                  <goal>single</goal>
                              </goals>
                          </execution>
                      </executions>
      </plugin>
      

      然后執(zhí)行打包命令

      mvn package -Dcheckstyle.skip -DskipTests
      

      使用agent包

      打完包后會(huì)發(fā)現(xiàn)目錄下會(huì)多一個(gè)target包

      image.png

      保存好teat-agent.jar的路徑

      新建一個(gè)main方法啟動(dòng)類

      public class Main {
          public static void main(String[] args) {
              System.out.println(new TestClass().getNumber());
          }
      }
      

      在啟動(dòng)Main方法之前,配置好啟動(dòng)的參數(shù)

      -javaagent:/Users/***/teat-agent.jar
      

      啟動(dòng)之后就會(huì)發(fā)現(xiàn),在Main方法之前他會(huì)先執(zhí)行Agent包中編寫好的agentmain方法內(nèi)的東西。這樣我們就達(dá)到了使用Agent的目的。

      posted @ 2022-01-29 15:20  鄧小白  閱讀(1816)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 四虎女优在线视频免费看| 内射无套内射国产精品视频| 撕开奶罩揉吮奶头高潮AV| 国偷自产一区二区三区在线视频| 欧美精品久久天天躁| 亚洲区一区二区三区亚洲| 亚洲红杏AV无码专区首页| 亚洲性日韩精品一区二区| 欧洲美熟女乱av在免费| 久久香蕉国产线熟妇人妻| 国产精品爆乳奶水无码视频免费| 久热伊人精品国产中文| 国产毛片欧美毛片久久久| 国产午夜福利不卡在线观看| 国内精品久久久久影院网站| 少妇高潮水多太爽了动态图| 91久久偷偷做嫩草影院免费看| 成人精品天堂一区二区三区| 手机| 久久无码人妻精品一区二区三区| 无套内谢少妇一二三四| 精品国模一区二区三区| AV人摸人人人澡人人超碰| 成年黄页网站大全免费无码| 亚洲欧洲日产国无高清码图片| 国产av一区二区久久蜜臀| 天堂va亚洲va欧美va国产| 久久这里有精品国产电影网| 日韩中文日韩中文字幕亚| 国产11一12周岁女毛片| 亚洲欧美综合精品成| 色欲国产精品一区成人精品| 浪卡子县| 久久无码中文字幕免费影院蜜桃| 偷偷做久久久久免费网站| 亚洲自拍偷拍激情视频| 四虎精品视频永久免费| 强开少妇嫩苞又嫩又紧九色| 沈丘县| 成人动漫综合网| 国产成人精品白浆免费视频试看|