成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用bytebuddy構(gòu)建agent

microelec / 3000人閱讀

摘要:使用固定引入實(shí)例使用自己構(gòu)建的通過使用,便捷地創(chuàng)建

使用固定agent 引入pom
 
            net.bytebuddy
            byte-buddy
            1.4.16
        
        
            net.bytebuddy
            byte-buddy-agent
            1.4.16
        
實(shí)例
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();
使用自己構(gòu)建的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,便捷地創(chuàng)建Java Agent

bytebuddy-tutorial

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65204.html

相關(guān)文章

  • java agent開發(fā)

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

    妤鋒シ 評論0 收藏0
  • Java調(diào)用鏈跟蹤關(guān)鍵技術(shù)(二)Javaagent

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

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

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

    wean 評論0 收藏0
  • serverless在微店node領(lǐng)域的探索應(yīng)用

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

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

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

    endless_road 評論0 收藏0

發(fā)表評論

0條評論

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