<del id="nnjnj"></del><track id="nnjnj"></track>

<p id="nnjnj"></p>

<address id="nnjnj"></address>

    <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

      <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>

      • 自動秒收錄
      • 軟件:1973
      • 資訊:56215|
      • 收錄網站:181187|

      IT精英團

      采訪者:告訴我們SpringAOP的底層代理模型

      采訪者:告訴我們SpringAOP的底層代理模型

      瀏覽次數:
      評論次數:
      編輯: 樂詠
      信息來源: ITPUB
      更新日期: 2022-05-07 18:32:24
      摘要

      來源|Java技術指北(ID:javanorth)代理模式相信大家經常聽說,在設計模式中相對而言是比較難理解的。這次指北君來給大家通俗的介紹介紹。1、什么是代理模式Provideasurrog

      • 正文開始
      • 相關閱讀
      • 推薦作品

      來源| Java技術指北(ID: Java North)代理模式。相信你經常聽說,在設計模式下理解起來相對困難。這次參考北君給大家通俗的介紹一下。

      1.什么是代理模式?

      為另一個對象提供代理或占位符,以控制對它的訪問。

      Proxy Pattern:為其他對象提供代理,以控制對該對象的訪問。

      說話:在不改變原類(或稱為代理類)代碼的情況下,通過引入代理類給原類增加功能,比如Spring AOP。

      2.代理模式的定義

      、主題

      抽象角色,可以是抽象類,也可以是接口,是業務類最常見的定義,沒有特殊要求。

      、真實主體

      真正的主題角色,也叫主體角色,是業務邏輯的具體執行者。

      、代理

      代理角色,也叫代理類,負責真實角色的應用,將抽象主題類定義的方法全部委托給真實主題角色,在真實主題角色處理前后做一些預處理或后處理。

      通用代碼如下:

      /**

      *抽象主題類

      */

      公共接口主題{

      voiddoSomething();

      }

      /**

      *真實主題角色

      */

      publicclassrealbjectimplementsssubject {

      @覆蓋

      publicavoiddosomething(){

      //TODO的具體實現

      }

      }

      /**

      *代理主題角色

      */

      publicsclassproxyimplementsubject {

      //要代理的具體實現類

      privateSubjectrealSubject

      public proxy(subject real subject){

      this . real subject=real subject;

      }

      @覆蓋

      publicavoiddosomething(){

      (=NationalBureauofStandards)國家標準局

      p;  this.before();
              realSubject.doSomething();
              this.after();
          }

          // 預處理
          private void before(){
              // TODO
          }

          // 善后處理
          private void after(){
              // TODO
          }
      }

      3、代理模式的兩種實現

      比如用代理模式實現統計某個接口的耗時。

      3.1 靜態代理

      ①、基于接口編程

      抽象主題類:

      public interface IUserController {
          // 登錄
          String login(String username,String password);
          // 注冊
          String register(String username,String password);
      }

      具體主題類:

      public class UserController implements IUserController{
          @Override
          public String login(String username, String password) {
              // TODO 登錄邏輯
              return null;
          }

          @Override
          public String register(String username, String password) {
              // TODO 注冊邏輯
              return null;
          }
      }

      代理主題類:

      public class UserControllerProxy implements IUserController{
          private IUserController userController;

          public UserControllerProxy(IUserController userController){
              this.userController = userController;
          }
          @Override
          public String login(String username, String password) {
              long startTime = System.currentTimeMillis();
              // 登錄邏輯
              userController.login("username","password");
              long endTime = System.currentTimeMillis();
              long responseTime = endTime - startTime;
              System.out.println("接口響應時間:"+responseTime);
              return null;
          }

          @Override
          public String register(String username, String password) {
              long startTime = System.currentTimeMillis();
              // 注冊邏輯
              userController.register("username","password");
              long endTime = System.currentTimeMillis();
              long responseTime = endTime - startTime;
              System.out.println("接口響應時間:"+responseTime);
              return null;
          }
      }

      測試:

      因為原始類 UserController 和代理類 UserControllerProxy 實現相同的接口,是基于接口而非實現編程,將UserController類對象替換為UserControllerProxy類對象,不需要改動太多代碼

      public class StaticProxyTest {
          public static void main(String[] args) {
              IUserController userController = new UserControllerProxy(new UserController());
              userController.login("username","password");
              userController.register("username","password");
          }
      }

      在上面的代碼中,代理類和具體主題類需要實現相同的接口,假如具體主題類沒有實現接口,并且不是我們開發維護的(比如來自第三方接口),我們要統計這個第三方接口的耗時,那應該如何實現代理模式呢?

      ②、基于繼承

      繼承具體主題類,然后擴展其方法即可,直接看代碼。

      public class UserControllerProxy extends UserController {
          @Override
          public String login(String username, String password) {
              long startTime = System.currentTimeMillis();
              // 登錄邏輯
              super.login("username","password");
              long endTime = System.currentTimeMillis();
              long responseTime = endTime - startTime;
              System.out.println("接口響應時間:"+responseTime);
              return null;
          }

          @Override
          public String register(String username, String password) {
              long startTime = System.currentTimeMillis();
              // 注冊邏輯
              super.register("username","password");
              long endTime = System.currentTimeMillis();
              long responseTime = endTime - startTime;
              System.out.println("接口響應時間:"+responseTime);
              return null;
          }
      }

      3.2 動態代理

      在上面的例子中,有兩個問題:

      ①、我們需要在代理類中,將具體主題類中的所有的方法,都重新實現一遍,并且為每個方法都附加相似的代碼邏輯,如果方法很多,重復代碼也會很多。

      ②、如果要添加的附加功能的類有不止一個,我們需要針對每個類都創建一個代理類。

      那該如何解決上面的問題呢?答案就是動態代理(Dynamic Proxy)。

      動態代理:不事先為每個原始類編寫代理類,而是在運行的時候,動態地創建原始類對應的代理類,然后在系統中用代理類替換掉原始類。

      JDK動態代理:

      public class DynamicProxyHandler implements InvocationHandler {

          private Object target;
          public DynamicProxyHandler(Object target){
              this.target = target;
          }
          @Override
          public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
              long startTime = System.currentTimeMillis();
              Object result = method.invoke(this.target, args);
              long endTime = System.currentTimeMillis();
              long responseTime = endTime - startTime;
              System.out.println("接口響應時間:"+responseTime);
              return result;
          }
      }

      測試:

      public class DynamicProxyTest {
          public static void main(String[] args) {
              // 1、創建具體主題類
              IUserController userController = new UserController();
              // 2、創建 Handler
              DynamicProxyHandler proxyHandler = new DynamicProxyHandler(userController);
              // 3、動態產生代理類
              IUserController o = (IUserController)Proxy.newProxyInstance(userController.getClass().getClassLoader(),
                      userController.getClass().getInterfaces(),
                      proxyHandler);
              o.login("username","password");
              o.register("username","password");
          }
      }

      這是 JDK 動態代理,利用反射機制生成一個實現代理接口的匿名類,在調用具體方法前調用InvokeHandler來處理,代理對象是在程序運行時產生的,而不是編譯期,要求是具體主題類必須實現接口。

      另外一種方式是 Cglib 動態代理。CGLIB(Code Generation Library)是一個基于ASM的字節碼生成庫,它允許我們在運行時對字節碼進行修改和動態生成,也就是通過修改字節碼生成子類來處理。

      Cglib 動態代理:

      public class UserController{
          public String login(String username, String password) {
              // TODO 登錄邏輯
              System.out.println("登錄");
              return null;
          }

          public String register(String username, String password) {
              // TODO 注冊邏輯
              System.out.println("注冊");
              return null;
          }
      }

      注意:真實主題類是沒有實現接口的。

      public class CglibDynamicProxy implements MethodInterceptor {
          private Object target;

          public CglibDynamicProxy(Object target){
              this.target = target;
          }

          // 給目標創建代理對象
          public Object newProxyInstance(){
              // 1.工具類
              Enhancer enhancer = new Enhancer();
              // 2.設置父類
              enhancer.setSuperclass(target.getClass());
              // 3.設置回調函數
              enhancer.setCallback(this);
              // 4.創建子類(代理對象)
              return enhancer.create();
          }

          @Override
          public Object intercept(Object o, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
              long startTime = System.currentTimeMillis();
              Object result = method.invoke(this.target, args);
              long endTime = System.currentTimeMillis();
              long responseTime = endTime - startTime;
              System.out.println("接口響應時間:"+responseTime);
              return result;
          }
      }

      測試:

      public class CglibDynamicProxyTest {
          public static void main(String[] args) {
              UserController userController = new UserController();
              CglibDynamicProxy cglibDynamicProxy = new CglibDynamicProxy(userController);
              UserController o = (UserController)cglibDynamicProxy.newProxyInstance();
              o.login("username","password");
              o.register("username","password");
          }
      }

      4、代理模式優點

      ①、職責清晰

      真實的角色就是實現實際的業務邏輯, 不用關心其他非本職責的事務, 通過后期的代理完成一件事務, 附帶的結果就是編程簡潔清晰。

      ②、高擴展性

      具體主題角色是隨時都會發生變化的, 只要它實現了接口, 甭管它如何變化,代理類完全都可以在不做任何修改的情況下使用。

      5、代理模式應用場景

      ①、業務系統的非功能性需求開發

      這是最常用的一個場景。比如:監控、統計、鑒權、限流、事務、冪等、日志。我們將這些附加功能與業務功能解耦,放到代理類中統一處理,讓程序員只需要關注業務方面的開發。

      典型例子就是 SpringAOP。

      ②、RPC

      RPC(遠程代理) 框架也可以看作一種代理模式,通過遠程代理,將網絡通信、數據編解碼等細節隱藏起來??蛻舳嗽谑褂?RPC 服務的時候,就像使用本地函數一樣,無需了解跟服務器交互的細節。除此之外,RPC 服務的開發者也只需要開發業務邏輯,就像開發本地使用的函數一樣,不需要關注跟客戶端的交互細節。

      <END>



      標簽:接口 主題 邏輯
      創建Go語言最快的排序算法
      ? 上一篇 2022-05-07
      SQL優化通用公式:5個步驟和10個案例
      下一篇 ? 2022-05-07
      • 胡迪核心知識點詳解(好文章合集)
        1閱讀 0條評論 個贊
        以下文章來源于公眾號-3分鐘秒懂大數據,作者在IT中穿梭旅行在Flink實時流中,經常會通過FlinkCDC插件讀取Mysql數據,然后寫入Hudi中。所以在執行上述操作時,需要了解……
      • 前端面試必須解決網絡中的跨域問題
        0閱讀 0條評論 個贊
        什么是跨域瀏覽器有一個重要的安全策略,稱之為「同源策略」其中,源=協議+主機+端口源=協議+主機+端口源=協議+主機+端口,兩個源相同,稱之為同源,兩個源不同,稱之為跨源或跨域比如:源1源2是否同……
      • 如何在Bash腳本中使用強大的Linux測試命令
        0閱讀 0條評論 個贊
        Linuxtest命令是Shell內置命令,用來檢測某個條件是否成立。test通常和if語句一起使用,并且大部分if語句都依賴test??梢詫⒁粋€元素與另一個元素進行比較,但它更?!?/div>
      • 真正的建筑設計是什么樣子的?
        1閱讀 0條評論 個贊
        什么是架構和架構本質在軟件行業,對于什么是架構,都有很多的爭論,每個人都有自己的理解。此君說的架構和彼君理解的架構未必是一回事。因此我們在討論架構之前,我們先討論架構的概念定義,概念是人認識這個世界的……
      • 10分鐘了解云原生 值得收藏~
        0閱讀 0條評論 個贊
        文章轉載:奇妙的Linux世界我們已經進入云計算下半場,不再像上半場在糾結要不要上云,而是討論怎么上云?才能把云計算的價值發揮到淋漓盡致。如何把云計算與不同的業務場景深度結合?如何讓技術真正作用于企業……
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      • 基礎鞏固——至少需要多少行代碼才能實現深度復制?
        1閱讀 0條評論 個贊
        前言深度克?。ㄉ羁截悾┮恢倍际浅?、中級前端面試中經常被問到的題目,網上介紹的實現方式也都各有千秋,大體可以概括為三種方式:JSON.stringify+JSON.parse,這個很好理解;全量判斷類……
      • 數據倉庫實踐:總線矩陣體系結構的設計
        1閱讀 0條評論 個贊
        以下文章來源于公眾號-云祁的數據江湖,作者云祁如何設計一套切實可行的數據倉庫呢?我們要明白,對于數據倉庫的設計是不能完全依賴于業務的需求,但往往又必須要服務于業務的價值。因此,在構建數據倉庫前,我們……
      • 透徹理解數據資產、數據資源、數據管理、數據治理等概念的區別
        1閱讀 0條評論 個贊
        以下文章來源于公眾號-大魚的數據人生,作者討厭的大魚先生數據成為生產要素后,各種跟數據相關的概念就出來了,其實很多概念沒有權威定義,大家各有各的理解,這導致了理解上的歧義。數據管理、數據治理、數據資源……
      • 優化Docker鏡像安全性的12個技巧 建議收藏起來!
        0閱讀 0條評論 個贊
        本文介紹了12個優化Docker鏡像安全性的技巧。每個技巧都解釋了底層的攻擊載體,以及一個或多個緩解方法。這些技巧包括了避免泄露構建密鑰、以非root用戶身份運行,或如何確保使用最新的依賴……
      • Spring Boot的表現太差了 我教你幾招輕松搞定
        0閱讀 0條評論 個贊
        文章……
      • 操作系統宕機 如何找回我的MySQL記錄?
        0閱讀 0條評論 個贊
        以下文章來源于公眾號-數據和云,作者楊豹一、概述如果Linux操作系統宕機,啟動不了,救援模式(rescueinstalledsystem)也行不通的時候,那么該機器上的MySQL數據還能恢復嗎?……
      • 我用Java在幾分鐘內處理了30億條數據.
        2閱讀 0條評論 個贊
        來源:https://c1n.cn/GM8hb目錄場景說明模擬數據場景分析讀取數據處理數據遇到的問題場景說明現有一個10G文件的數據,里面包含了18-70之間的整數,分別表示18-70歲的……
      • 系統數據治理的思考與實踐
        2閱讀 0條評論 個贊
        美團住宿數據治理團隊從事數據治理工作多年,從最初的被動、單點治理,發展到后來的主動、專項治理,再發展到現在的體系化、自動化治理。一路走來,他們不斷進行積累和沉淀,也在持續思考與實踐。目前該團隊取得了一……
      • 緊急情況下數據庫表被鎖 抓瞎?
        4閱讀 0條評論 個贊
        以下文章來源于公眾號-程序新視界,作者二師兄在程序員的職業生涯中,總會遇到數據庫表被鎖的情況,前些天就又撞見一次。由于業務突發需求,各個部門都在批量操作、導出數據,而數據庫又未做讀寫分離,結果就是:數……
      • 甲骨文(第11代)單實例-室內空調(第11代)遷移模擬測試
        1閱讀 0條評論 個贊
        Oracle11.2.0.4單實例----Oracle19C-RAC遷移模擬測試總體思想:通過RMAN物理備份在備庫恢復主庫數據,后續通過在主庫停業務后,將從備份后的所有日志都同步到新庫應用,重新配置……
      • 談談復雜項目代碼的應用分層
        1閱讀 0條評論 個贊
        —1—背景說起應用分層,大部分人都會認為這個不是很簡單嘛就controller,service,mapper三層??雌饋砗唵?,很多人其實并沒有把他們職責劃分開,在很多代碼中,controller做……
      • Java原子變量中set()和lazySet()的區別
        1閱讀 0條評論 個贊
        來源|Java技術指北(ID:javanorth)在本教程中,我們將講講Javaatomic類(如AtomicInteger和AtomicReference)的方法set()和l……
      • JD.COM面試問題:ElasticSearch深度分頁解決方案
        0閱讀 0條評論 個贊
        以下文章來源于月伴飛魚,作者日常加油站前言Elasticsearch是一個實時的分布式搜索與分析引擎,在使用過程中,有一些典型的使用場景,比如分頁、遍歷等。在使用關系型數據庫中,我們被告知要注意甚至……
      • 微服務架構下基于Prometheus構建綜合監控平臺的最佳實踐
        2閱讀 0條評論 個贊
        隨著Prometheus逐漸成為云原生時代的可觀測事實標準,那么今天為大家帶來在微服務架構下基于Prometheus構建一體化監控平臺的最佳實踐和一些相關的思考,內容主要包括以下幾個部分:微服……
      • 前端面試必須解決網絡中的跨域問題
        0閱讀 0條評論 個贊
        什么是跨域瀏覽器有一個重要的安全策略,稱之為「同源策略」其中,源=協議+主機+端口源=協議+主機+端口源=協議+主機+端口,兩個源相同,稱之為同源,兩個源不同,稱之為跨源或跨域比如:源1源2是否同……
      • 3種方式!轉到錯誤處理最佳實踐
        1閱讀 0條評論 個贊
        以下文章來源于公眾號-云加社區,作者李森林導語|錯誤處理一直以一是編程必需要面對的問題,錯誤處理如果做的好的話,代碼的穩定性會很好。不同的語言有不同的出現處理的方式。Go語言也一樣,在本篇文章中,我們……
      • 高可用性架構設計的無狀態服務
        2閱讀 0條評論 個贊
        笑談架構設計事故的發生是量的積累的結果,任何事情都沒有表面看起來那么簡單,在軟件運行的過程中,隨著用戶量的增加,不考慮高可用,遲早有一天會發生故障,不得事先考慮高可用設計,而高可用是一門龐大的學問。在……
      • 提高Java字符串編碼和解碼性能的技巧
        1閱讀 0條評論 個贊
        1常見字符串編碼●常見的字符串編碼有:LATIN1只能保存ASCII字符,又稱ISO-8859-1。UTF-8變長字節編碼,一個字符需要使用1個、2個或者3個byte表示。由于中文通常需要3個字節……
      • 卡夫卡3.0新功能全暴露 好香??!
        1閱讀 0條評論 個贊
        以下文章來源于云加社區,作者屈志平導語|kafka3.0的版本已經試推行去zk的kafka架構了,如果去掉了zk,那么在kafka新的版本當中使用什么技術來代替了zk的位置呢,接下來我們一起來一探究竟……
      • MYSQL如果索引優化僅僅是添加索引 太年輕而不簡單
        1閱讀 0條評論 個贊
        MYSQL的索引優化,如果此時此刻看到索引的優化,僅僅想到添加適合的索引,是不完全的,索引的優化本身就具有很多的不確定性。1索引會隨著時間的推移,有性能的衰減2索引會隨著數據量的增加,有性能的衰……
      • 4%收益存款產品難求 這個最高返利9%!揭示銀行直接存款的業務陷阱
        10閱讀 0條評論 個贊
        ‘直存’也并非銀行正規的存款產品,儲戶不應相信。市場上出現了一些號稱背靠央企、國企授權背書的“直存”業務,由融資顧問進行協調,將“銀主”的資金存入指定銀行的賬戶,以獲得企業提供的貼息“福利”。 在這個利益鏈條中,“銀主”拿錢,企業貼息返利,但殊不知,這樣的“直存”業務早已被監管機構定性為“存在非法集資、詐騙等風險隱患”,儲戶一旦輕信,恐將落入非法集資陷阱?!?/div>
      • 蘇寧消費金融擬更換總經理
        3閱讀 0條評論 個贊
        整體團隊維持穩定?!?/div>
      • 又有17只中國股票被美國SEC列入“預退市”名單 殼牌和李回應道
        7閱讀 0條評論 個贊
        美國證劵交易委員會(SEC)再將理想汽車、百世集團和貝殼等17家公司被加入“預摘牌”名單,這是自3月以來第五批被納入名單的中概股公司。據金融虎網了解,有200多家中國公司在美國上市,其中約20家公司在香港也有上市地位,預計這一群體還會增加?!?/div>
      • 白楊SEO:傳統SEO如何向網站運營或淘寶SEO轉型?
        0閱讀 0條評論 個贊
        網站運營是什么?與SEO有什么關系網站運營,其實有網站開始就有網站運營了,更準確說,SEO也可以說是網站運營里獲取流量的一種方式。網站運營是什么?網站運營指一切……
      • 眾邦銀行五年:增速放緩 不良率創新高
        1閱讀 0條評論 個贊
        眾邦銀行有通過高息存款的手段來招攬用戶的嫌疑?!?/div>
      • 消費者1元起訴寺庫衣服不送要求賠償
        0閱讀 0條評論 個贊
        法院審理認為,寺庫商貿公司未履行發貨的合同主要義務,構成違約,且其以“1元購”促銷手段吸引客戶后又取消訂單,從消費者的需求側來看可以從最“惡意”的角度理解為欺詐行為。寺庫商貿公司關于涉案合同存在重大誤解和顯失公平的可撤銷事由,應撤銷涉案合同的反訴請求,法院不予支持。最終法院裁定,北京寺庫商貿有限公司賠償趙某損失合計4000元?!?/div>
      • 加密億萬富翁巨額財富幾周毀于一旦:比南CEO趙昌鵬損失或最慘重
        1閱讀 0條評論 個贊
        至少在賬面上,少數人持股的BINANCE幣安首席執行官趙長鵬損失的財富甚至超過了阿姆斯特朗或諾沃格拉茨。今年1月,他以960億美元的凈資產首次出現在彭博財富指數上,是世界上最大的財富之一。根據Coinbase和加拿大加密貨幣公司Voyager Digital的平均企業價值與銷售額之比計算,截至周三,這一數字已縮水至116億美元?!?/div>
      • 小米上市以來首次季度營收下滑:Q1凈虧損5.9億元 手機出貨量下滑22%
        1閱讀 0條評論 個贊
        小米集團第一季度報告其收入下降,原因是新冠肺炎疫情控制和封鎖影響了需求,而包括俄烏戰爭在內的更廣泛的經濟阻力增加了成本。這也是小米公司有記錄以來的首次季度收入下降。Refinitiv數據顯示,截至3月31日的季度收入從上年同期的768.8億元降至733.5億元(合108.5億美元),低于分析師預期的743億元?!?/div>
      • SQL中的三種重復數據刪除方法 還有誰不行?
        1閱讀 0條評論 個贊
        SQL去重是數據分析工作中比較常見的一個場景,今天給大家具體介紹3種去重的方法。在使用SQL提數的時候,常會遇到表內有重復值的時候,比如我們想得到uv(獨立訪客),就需要做去重。在MySQL中……
      • 社交電商玩家要么退出 要么涉足 轉型民營電商前景如何?
        1閱讀 0條評論 個贊
        業內有觀點認為,平臺只要設有用戶分級制度就比較容易“變味”,可能還是難以規避涉傳風險?!?/div>
      • 部分消費金融app顯示利率并非實際利率
        1閱讀 0條評論 個贊
        對于消費者關心的利率情況,近期,多家消費金融公司披露了最新的定價和收費項目公告,其中貸款利率上限均降至24%,甚至部分產品利率上限控制在15%以內。不過,需要注意的是,消費金融APP展示的貸款產品利率并不一定是實際利率?!?/div>
      • 名稱:重慶金融職業技術學院獲準成立
        0閱讀 0條評論 個贊
        本月上旬,市委編辦批準重慶金融科技研究院登記成立,并發放事業單位法人證書。重慶金融科技研究院是重慶工商大學按照市委、市政府要求,以科技創新項目為抓手,全力參與科技創新中心和西部(重慶)科學城建設,在高新區管委會支持下設立的獨立法人單位,選址位于高新區科學谷?!?/div>
      • 諾亞控股辟謠:全球員工工資發放正常 各項運營正常
        2閱讀 0條評論 個贊
        昨日,針對關于“諾亞按照上海市最低社會保障工資標準支付上海員工”的報道,諾亞控股發布辟謠公告稱,該篇文章屬于不實報道,基于一條短信截圖,未經過與我司核實和確認,便進行了片面曲解和惡意傳播。在疫情期間,全球員工的薪酬均正常發放,并無“全體員工僅按上海.最低標準支付薪酬”的情況……
      • 網站首頁快照未更新原因分析
        0閱讀 0條評論 個贊
        網站首頁快照一直不更新怎么辦?網站首頁快照不更新的原因有很多,本文就給大家帶來快照一直不更新的原因分析,感興趣的朋友們可以過來看看……
      • 這家財險巨頭被另一省高管調查:涉嫌嚴重違紀違法;近兩年 已有8名保險高管落馬…
        0閱讀 0條評論 個贊
        太平財險又一省分高管被調查?!?/div>
      • 白楊SEO:五年后你愿意和我做一件事嗎?白楊流交流 與實際流派一起前進
        2閱讀 0條評論 個贊
        2017年4月,報名28推公益新媒體實戰培訓。從最開始的相關的50個好友開始,到現在五個微信22000多人。這五年的經歷,比前面六年的互聯網工作經歷收獲多太多了。上面說到那個新媒體實戰培訓,自我介紹、實戰加粉、網絡推廣、數據分析這些任務讓我真正發現了自己的優勢——獲取互聯網各平臺精準搜索流量!……
      • 網商VS微眾:九個指標看透孰強孰弱
        1閱讀 0條評論 個贊
        沒有誰真正愿意做“傻子銀行”……
      • Python極簡編碼規范
        1閱讀 0條評論 個贊
        本文是閱讀《PythonCodingRule》之后總結的最為精華及簡單的編碼規范,根據每個人不同喜好有些地方會有不同的選擇,我只是做了對自己來說最簡單易行的選擇,僅供大家參考。1、重要原則a.保持……
      • 燒香拜佛 安排大量家屬入職!中國銀行原支行行長被開除黨籍 妻子被綁架索要2億元贖金 釀成驚天大案
        0閱讀 0條評論 個贊
        國有大行原分行行長退休4年后被查,其牽涉的一起離奇綁架案也重回公眾視野?!?/div>
      • 7億多買理財被清盤 虧損過半 中信信托獲賠
        1閱讀 0條評論 個贊
        投資者買中信信托產品遭平倉清算,700余萬元本金僅剩一半,法院判決中信信托應賠償損失?!?/div>
      最近發布資訊
      更多
      警花高潮嗷嗷叫
      <del id="nnjnj"></del><track id="nnjnj"></track>

      <p id="nnjnj"></p>

      <address id="nnjnj"></address>

        <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

          <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>