国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用bytebuddy構建agent

microelec / 2998人閱讀

摘要:使用固定引入實例使用自己構建的通過使用,便捷地創建

使用固定agent 引入pom
 
            net.bytebuddy
            byte-buddy
            1.4.16
        
        
            net.bytebuddy
            byte-buddy-agent
            1.4.16
        
實例
public static void installAgent(){
        ByteBuddyAgent.install();
        AgentBuilder agentBuilder = new AgentBuilder.Default()
                .type(nameStartsWith("com.codecraft.demo")
                        .and(not(isInterface()))
                        .and(not(isStatic()))
                .transform((builder,typeDescription,classLoader) -> builder
                        .method(ElementMatchers.any())
                        .intercept(MethodDelegation.to(TraceInterceptor.class)
                );
agentBuilder.installOnByteBuddyAgent();
使用自己構建的agent
    public static void premain(String argument, Instrumentation inst) {
        System.out.println("start premain)");

        new AgentBuilder.Default()
                .type(nameStartsWith("com.codecraft.demo").and(not(isInterface())).and(not(isStatic())))
                .transform((builder,typeDescription,classLoader) -> builder
                        .method(ElementMatchers.any())
                        .intercept(MethodDelegation.to(TraceInterceptor.class)
                )
                ).with(new AgentBuilder.Listener(){

            @Override
            public void onTransformation(TypeDescription typeDescription, ClassLoader classLoader, JavaModule javaModule, DynamicType dynamicType) {

            }

            @Override
            public void onIgnored(TypeDescription typeDescription, ClassLoader classLoader, JavaModule javaModule) {

            }

            @Override
            public void onError(String s, ClassLoader classLoader, JavaModule javaModule, Throwable throwable) {
                throwable.printStackTrace();
            }

            @Override
            public void onComplete(String s, ClassLoader classLoader, JavaModule javaModule) {

            }
        })
                .installOn(inst);
    }
pom

                org.apache.maven.plugins
                maven-compiler-plugin
                
                
                    ${java.version}
                    ${java.version}
                    ${project.build.sourceEncoding}
                
            

                org.apache.maven.plugins
                maven-assembly-plugin
                2.6
                
                    
                        jar-with-dependencies
                    
                    ${project.artifactId}-${project.version}
                    false
                    
                        
                            ${premain}
                            ${premain}
                        
                    
                
                
                    
                        assemble-all
                        package
                        
                            single
                        
                    
                
            
docs

通過使用Byte Buddy,便捷地創建Java Agent

bytebuddy-tutorial

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65204.html

相關文章

  • java agent開發

    摘要:介紹是插件或者叫做代理,她是運行在方法之前,她內定的方法名稱叫。是不是很簡單啊。。。。接下來,我們看看使用方式咯。。。。。注意包的結構要一樣哦。。。。。好了,今天的文章到這里就結束了。。。最后還來一張運行結果吧。。。。 java agent介紹 java agent是jvm插件或者叫做代理,她是運行在main方法之前,她內定的方法名稱叫premain。 java agent 概述 s...

    妤鋒シ 評論0 收藏0
  • Java調用鏈跟蹤關鍵技術(二)Javaagent

    摘要:一網上關于的介紹很多,請找度娘和谷兄。唯一提的一點是字節碼注入比較好用的是,封裝度很高,使用簡單。二代碼樣例以下為關鍵代碼樣例,可以依樣畫瓢自行改造。加入棧實戰營知識星球,參與討論,更多實戰代碼分享,不就是幾斤蘋果,幾個榮耀道具的事嗎 一、Javaagent 網上關于Javaagent的介紹很多,請找度娘和谷兄。唯一提的一點是字節碼注入比較好用的是bytebuddy,封裝度很高,使用簡...

    geekzhou 評論0 收藏0
  • 程序員練級攻略(2018):Java底層知識

    摘要:最黑科技的玩法就是字節碼編程,也就是動態修改或是動態生成字節碼。使用字節碼編程可以玩出很多高級玩法,其中最高級的玩法是在程序運行時進行字節碼修改和代碼注入。 showImg(https://segmentfault.com/img/bVbkqqg?w=1142&h=640);這個是我訂閱 陳皓老師在極客上的專欄《左耳聽風》,我貼出來是為了自己以后方便學習和記憶,同時也分享給你們一起學習...

    wean 評論0 收藏0
  • serverless在微店node領域的探索應用

    摘要:參與者流量來自于內部系統和外部流量,其中大部分來自于外部流量。水平擴容服務的水平擴容重要性不言而喻。 背景 目前微店中臺團隊為了滿足公司大部分產品、運營以及部分后端開發人員的嘗鮮和試錯的需求,提供了一套基于圖形化搭建的服務端接口交付方案,利用該方案及提供的系統可生成一副包含運行時環境定義可立即運行的工程代碼,最后,通過 某種serverless平臺 實現生成后代碼的部署、CI、運行、反...

    mikyou 評論0 收藏0
  • 新一代 CI 持續集成工具 flow.ci 正式開源

    摘要:很高興地宣布在協議下正式開源了。是國內首套開源持續集成解決方案,幫助企業團隊實現開發流程自動化,快速持續交付高質量軟件。官方網站開源地址以此,你可以將功能完整的持續集成服務部署到內網使用。 很高興地宣布 flow.ci 在 Apache-2.0 協議下正式開源了。flow.ci 是國內首套開源持續集成(CI) 解決方案,幫助企業團隊實現開發流程(build-test-deploy)自動...

    endless_road 評論0 收藏0

發表評論

0條評論

microelec

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<