SSH需要的關鍵技術

1  代理  (用來進行類的增強  和service實現類一樣都繼承相同的接口)

       靜態代理---------創建一個代理類,運行之前就已經確定了代理某個service實現類

       動態代理---------不需要創建代理類,通過工廠產生代理對象,在運行時才生成代理

                     jdk動態代理:target=Proxy.newProxyInstance(target.getClass().getClassLoader()目標類加載器,

                                                                                              目標類實現的接口target.getClass().getInterfaces(),

                                                                                              new InvocationHandler(){

                                                                                                            public Object invoke(Object proxy,Method method 目標方法,Objects[] args目標方法參數){

                              method.invoke(target 這個引用外部類的變量必須是final修飾的,args);}

}內部匿名類,增強在這裏面完成)

                CGLib動態代理(code generation lib):jdk動態代理要求目標類實現相同的接口,若目標不存在接口,則無法使用該方式實現。GBLib不需要實現接口,底層是生成一個目標類的子類來增強,所以目標類必須可繼承,不能用final修飾。

                

 

2反射

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章