<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    美麗涵涵童裝店--說我博客名字,給你們打折!
    隨筆 - 82  文章 - 266  trackbacks - 0
    <2014年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456


    點擊這里給楊愛友發消息
    美麗涵涵童裝店
    說我博客名字,給你們打折!

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    vim
    1. 刪除行命令
    dd: 刪除游標所在的一整行(常用)
    ndd: n為數字。刪除光標所在的向下n行,例如20dd則是刪除光標所在的向下20行
    d1G: 刪除光標所在到第一行的所有數據
    dG: 刪除光標所在到最后一行的所有數據
    d$: 刪除光標所在處,到該行的最后一個字符
    d0: 那個是數字0,刪除光標所在到該行的最前面的一個字符
    x,X: x向后刪除一個字符(相當于[del]按鍵),X向前刪除一個字符(相當于[backspace]即退格鍵) 
    2. 插入命令
    I 在當前行首插入
    A 在當前行尾插入
    o 在當前行之后插入一行
    O 在當前行之前插入一行
    3. 移動命令
    w 向前移動一個單詞(光標停在單詞首部),如果已到行尾,則轉至下一行行首。此命令快,可以代替l命令。

    b 向后移動一個單詞 2b 向后移動2個單詞
    到指定行,冒號+行號,回車,比如跳到240行就是 :240回車
    Ctrl + e 向下滾動一行
    Ctrl + y 向上滾動一行
    Ctrl + f 向下滾動一屏
    Ctrl + b 向上滾動一屏    
    4. 拷貝和粘貼
    yy 拷貝當前行
    nyy 拷貝當前后開始的n行,比如2yy拷貝當前行及其下一行。
    p  在當前光標后粘貼,如果之前使用了yy命令來復制一行,那么就在當前行的下一行粘貼。
    shift+p 在當前行前粘貼
    ...
    posted @ 2019-01-29 13:59 楊愛友 閱讀(202) | 評論 (0)編輯 收藏
    參考文章:
    http://wenku.baidu.com/link?url=kq8VcGwEedCn5hHdSDbPsQrJCapBZje0DRRzyvEOkpqVOEP5XV--dtSL3RNC9a5Mf9K3mSJOGVwYt8VHjpUoBVTQ0L5z3WOSV-dTpSgs-My

    用一張空的U盤,利用支持軟件和ISO鏡像文件制作安裝盤,然后將USB3.0驅動程序放進U盤

    在格式化步驟,格式化完之后要加載USB3的驅動程序,否則安裝WIN7后無法使用鼠標和鍵盤
    參考文章:http://bbs.feng.com/read-htm-tid-8203477.html

    啟動WIN7后,可能出現黑屏“無法驗證簽名文件”,把windows\system32\drivers 里面那個AppleSSD.sys干掉
    參考文章:
    http://bbs.feng.com/read-htm-tid-9791867.html

    最后進入WIN7系統,此時之后一個盤符,需要再進行分盤,按照網上介紹,“壓縮卷--新建簡單分區“進行,發現竟然把原有MAC系統干掉了,這里千萬注意!

    然后就是到bootcamp/drivers下面找一些網絡、顯卡等的驅動進行點擊安裝。
    posted @ 2015-09-25 16:48 楊愛友 閱讀(294) | 評論 (0)編輯 收藏
         摘要: 先在客戶端注冊一個callback, 然后把callback的名字傳給服務器。

    此時,服務器先生成 json 數據。
    然后以 javascript 語法的方式,生成一個function , function 名字就是傳遞上來的參數 jsonp.

    最后將 json 數據直接以入參的方式,放置到 function 中,這樣就生成了一段 js 語法的文檔,返回給客戶端。

    客戶端瀏覽器,解析script標簽,并執行返回的 javascript 文檔,此時數據作為參數,傳入到了客戶端預先定義好的 callback 函數里.(動態執行回調函數)
    美麗涵涵童裝店
      閱讀全文
    posted @ 2014-10-29 14:57 楊愛友 閱讀(9394) | 評論 (5)編輯 收藏
         摘要: Spring源代碼解析(一):IOC容器:http://www.javaeye.com/topic/86339
    Spring源代碼解析(二):IoC容器在Web容器中的啟動:http://www.javaeye.com/topic/86594
    Spring源代碼解析(三):Spring JDBC:http://www.javaeye.com/topic/87034
    Spring源代碼解析(四):Spring MVC:http://www.javaeye.com/topic/87692
    Spring源代碼解析(五):Spring AOP獲取Proxy:http://www.javaeye.com/topic/88187
    美麗涵涵童裝店
      閱讀全文
    posted @ 2014-10-29 14:54 楊愛友 閱讀(2722) | 評論 (0)編輯 收藏
         摘要: 提高淘寶店鋪訪問量辦法  閱讀全文
    posted @ 2014-10-29 14:34 楊愛友 閱讀(4714) | 評論 (0)編輯 收藏
         摘要: Spring源碼學習-bean加載
    一個applicationContext.xml配置文件,這個不可少
    一個bean,這里我沒用接口,直接用一個普通的類做為Spring的bean
    一個Junit測試類  閱讀全文
    posted @ 2014-08-29 10:47 楊愛友 閱讀(10872) | 評論 (3)編輯 收藏

    學習源碼是一件非常耗時費力的事情,需要有足夠的時間和持久的耐心,下面是我閱讀郝佳老師的《Spring源碼深度解析》所做的記錄,書中以Spring3.2講解,使用jdk1.7。

    準備工作

    1. 安裝github:現在spring源代碼都在github管理,所以首先需要下載githup,下載地址http://windows.github.com;

    2. 安裝gradle構建工具:下載地址http://www.gradle.org/downloads,下載完后進行解壓到任意盤符,然后增加環境變量GRADLE_HOME,并在環境變量bin中增加%GRADLE_HOME%/bin,打開DOS窗口,運行gradle -v,出現版本號等信息,表示安裝成功;

    3. 下載Spring源碼:首先打開git shell,切換到你的工作目錄,然后輸入以下命令:git clone git://github.com/SpringSource/Spring-framework.git,后面一串是源碼下載地址。大概半小時的樣子,就可以下載完成,這時候在你的工作目錄中就會出現Spring-framework的目錄,里面有Spring各組件的源碼包;

    4. 構建導入:下載下來的代碼不能直接導入Eclipse,要先轉換成Eclipse能讀取的形式。因為所有組件都會依賴spring-core,所有我們首先要轉換Spring-core工程,在命令窗口切換到Spring-core工程,運行gradle cleanidea eclipse命令,我們會看到開始下載工程所依賴的jar包,幾分鐘后執行完畢,再來看Spring-core文件夾,多了.classpath、.project等文件,這是Eclipse工程所必須的,然后可以把他導入到eclipse。因為大部分Spring組件都會用到 spring-beans、spring-context、spring-aop,而他們又依賴spring-expression、spring-instrument,所以我們干脆先把這些工程都進行轉換并導入eclipse。

    我初次導入過程并不順利,拿spring-core為例,其中以來的一個jar包是Spring-framework/spring-core/build/libs/spring-asm-repack-4.0.jar,但我工程里面并沒有他,只好在網上下載了一個,并加入構建路徑,其次我還發現少commons-pool-1.5.3.jar、spring-cglib-repack-3.0.jar,都一一下載,最后還是報錯沒有java.util.concurrent.ForkJoinPool類,發現這個版本必須使用jdk1.7以上,1.6沒有這個包。折騰半天,終于幾個工程沒變異錯誤了,向前邁進了一步。




    posted @ 2014-08-21 16:04 楊愛友 閱讀(5960) | 評論 (2)編輯 收藏

    場景1:aService里面有個savePerson方法,里面將調用bService中的保存方法進行保存;

        aService代碼:
    @Transactional(propagation=Propagation.REQUIRED)
    public void savePerson() {
    Person p1 = new Person();
    p1.setName("yangay");
    Person p2 = new Person();
    p2.setName("lisan");
    messageBean.saveTwo(p1, p2);
    messageBean.savePerson(null);
    }
         bService代碼:
          @Transactional(propagation=Propagation.REQUIRED)
    public void saveOne(Person p){
    this.dao.save(p);
    }
    @Transactional(propagation=Propagation.REQUIRES_NEW)
    public void saveTwo(Person p1,Person p2){
    this.dao.save(p1);
    this.dao.save(p2);
    }
        因為saveTwo的傳播特性設置為requires_new,saveTwo方法單獨起一個事務,所以當調用saveOne拋出異常之后,不會影響saveTwo事務提交,事實上,在saveTwo返回之前已經將事務提交,所以p1、p2對象能保存入庫;
        如果將saveTwo方法的傳播特性設置為required,這時候三個方法公用一個事務,當saveOne拋出異常后,整個事務回滾,數據不能入庫;

    場景2:
     aService代碼:
    @Transactional(propagation=Propagation.REQUIRED)
    public void savePerson() {
    try{
    Person p1 = new Person();
    p1.setName("yangay");
    Person p2 = new Person();
    p2.setName("lisan");
    messageBean.saveTwo(p1, null);
    }catch(Exception ex){
    ex.printStackTrace();
    }
    }
     bService代碼:
            @Transactional(propagation=Propagation.REQUIRED)
    public void saveTwo(Person p1,Person p2){
    this.dao.save(p1);
    this.dao.save(p2);
    }
         因為異常被catch了,所以事務不回滾,p1正常入庫;
    場景3:
     aService代碼:
    @Transactional(propagation=Propagation.REQUIRED)
    public void savePerson() {
    try{
    Person p1 = new Person();
    p1.setName("yangay");
    Person p2 = new Person();
    p2.setName("lisan");
    messageBean.saveOne(p1);
    messageBean.saveTwo(p2, null);
    }catch(Exception ex){
    ex.printStackTrace();
    }
    }
     bService代碼:
            @Transactional(propagation=Propagation.REQUIRED)
    public void saveOne(Person p){
    this.dao.save(p);
    }
    @Transactional(propagation=Propagation.REQUIRED)
    public void saveTwo(Person p1,Person p2){
    this.dao.save(p1);
    this.dao.save(p2);
    }
            開始以為有了try catch,p1能保存進去,但經過測試,發現會報錯。因為saveTwo時拋出異常,首先被spring框架個catch住,將事務標記為rollbackonly,然再往出拋異常,最后被savePerson方法catch住,所以事務能夠提交,但當提交的時候,發現標志位已經被設置了,不應該去提交了,然后吭哧吭哧的回滾調,再提示你已經被設置成rollback-only了。
            但如果saveTwo的傳播特性改為require_new,因為他單起一個事務,不會影響父事務的提交,所以p1能保存,p2失敗;

    場景4:
    事務在多個對象之間才有傳播特性
    @Override
    public void savePerson() {
    Person p1 = new Person();
    p1.setName("yangay");

    Person p2 = new Person();
    p2.setName("lisan");

    saveTwo(p1,null);
    }

    @Transactional(propagation=Propagation.REQUIRED)
    public void saveTwo(Person p1,Person p2){
    messageBean.saveOne(p1);
    messageBean.saveOne(p2);
    }
        兩個方法在一個類里面,saveTwo并沒有事務,p1能提交;但如果把saveTwo放到另外一個類,則saveTwo就會有事務,p1不能提交;
        如果要同一個類里面的saveTwo執行事務,可在配置文件增加<aop:aspectj-autoproxy expose-proxy="true"/>,然后((Iservice)AopContext.currentProxy()).saveTwo(),這樣執行的就是代理的方法,就會有事務(Iservice必須是你定義的接口)
    posted @ 2014-08-08 15:43 楊愛友 閱讀(2748) | 評論 (0)編輯 收藏
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: 久久精品中文字幕免费| 亚洲高清免费视频| 97热久久免费频精品99| 婷婷亚洲久悠悠色悠在线播放| 久久九九免费高清视频| 国产精品亚洲综合专区片高清久久久| fc2免费人成在线视频| 国产成人精品日本亚洲专区61 | 免费的涩涩视频在线播放| 亚洲偷自拍另类图片二区| 成人免费视频观看无遮挡| 亚洲精品乱码久久久久久蜜桃图片| 一个人看www在线高清免费看| 日本亚洲免费无线码 | 亚洲熟妇AV乱码在线观看| 我要看WWW免费看插插视频| 亚洲欧美日韩中文无线码| 免费va在线观看| a级毛片毛片免费观看久潮喷| 亚洲av无码成人黄网站在线观看| 中文字幕视频免费| 亚洲日本乱码卡2卡3卡新区| 国产精品极品美女免费观看| 亚洲黄片手机免费观看| 亚洲人成电影福利在线播放 | 成年女人毛片免费播放人 | 亚洲国产精品白丝在线观看| 国产在线a免费观看| 国产精品亚洲一区二区在线观看| 亚洲第一永久AV网站久久精品男人的天堂AV| 一边摸一边爽一边叫床免费视频| 亚洲AV无码专区在线播放中文| 国产1000部成人免费视频| 18禁亚洲深夜福利人口| 久久国产精品亚洲综合| 性感美女视频在线观看免费精品 | 亚洲日产2021三区在线| 日日操夜夜操免费视频| 日本免费在线观看| 亚洲中文字幕一二三四区| 区三区激情福利综合中文字幕在线一区亚洲视频1 |