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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

      在超輕量級開源ORM系統EasyDBO,可以根據情況把屬性設置成延遲加載,從而大大提高應用程序的性能。比如一個域對象中所包括一個order屬性,則可以像下面這樣設置:? <one-to-one name="order" type="com.easyjf.dbo.example.Order" column="orderId" key="cid" lazy="true">????????
    ??????? </one-to-one>
      
      EasyDBO中的延遲加載是使用CGLIB實現的,下面我們來看看延遲加載的實現原理:
      1、設計一個延遲加載器(回調),實現CGLIB的LazyLoader接口。
      2、在第一次創建域對象DOM(PO)的時候,使用CGLIB的Enhancer創建一個需要延遲加載的屬性對象,這其中需要使用上面的延遲加載器作為參數。
      3、當用戶在第一次訪問到延遲加載的對象時,則會調用延遲加載器中的loadObject方法來實際加載對象。
    ?
      下面是一個非常簡單例子,通過后臺可以看到:在使用new TB(),然后訪問其cid屬性的時候,延遲加載的Bean還沒有創建,只有在訪問其TB的bean屬性時,才會創建TestBean對象,并作相應的初始化處理工作:
    ?
    BeanTest.java
    public class BeanTest extends TestCase {
    ?
    ?public void testBean()
    ?{?
    ?TB tb=new TB();
    ?System.out.println(tb.getCid());
    ?System.out.println("--");
    ?System.out.println(tb.getBean().getUserName());?
    ?}
    ?
    Lazy implements net.sf.cglib.proxy.LazyLoaderLazyLoader
    ?{
    ??public Object loadObject() throws Exception {
    ???// TODO Auto-generated method stub
    ???System.out.println("開始延遲加載!");
    ???TestBean bean=new TestBean();
    ???bean.setUserName("test");
    ???return bean;
    ??}
    ?}
    ?
    class TB{
    ?private String cid;
    ?private TestBean bean;
    ?LazyLoader lazy=new Lazy();
    ?public TB()
    ?{
    ??cid="1245454";
    ??bean=(TestBean)net.sf.cglib.proxy.Enhancer.create(TestBean.class,lazy);
    ?}
    ?public TestBean getBean() {
    ??return bean;
    ?}
    ?public void setBean(TestBean bean) {
    ??this.bean = bean;
    ?}
    ?public String getCid() {
    ??return cid;
    ?}
    ?public void setCid(String cid) {
    ??this.cid = cid;
    ?}
    ?}
    ?
    }
    ?
    TestBean.java
    public class TestBean {
    ?private String userName;
    ?private Integer sequence;
    ?public Integer getSequence() {
    ??return sequence;
    ?}
    ?public void setSequence(Integer sequence) {
    ??this.sequence = sequence;
    ?}
    ?public String getUserName() {
    ??return userName;
    ?}
    ?public void setUserName(String userName) {
    ??this.userName = userName;
    ?}
    ?public void test() {
    ??// TODO Auto-generated method stub
    ??
    ?}?
    }
      
    posted on 2006-10-20 09:35 簡易java框架 閱讀(2491) 評論(1)  編輯  收藏

    FeedBack:
    # re: 使用CGLIB輕松實現延遲加載(Lazyloader) 2006-10-23 10:52 11
    增開7群,號碼 30440732
    8群 30756649
    9群 30178567
    10群 28694497
    我們的qq群:15096318 學習程序的都可以來
    www.mylinux.com.cn 包羅java,linux,數據庫,安全等等技術資料,更有眾多軟件外包項目,所有項目直接與mylinux簽署合同,保證用戶的合法權利.
    qq群:15096318(已滿) 26343297(已滿) 26343309(已滿) 20767472(已滿) 30440614(已滿)21189212(已滿)

      回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 两性色午夜视频免费网| 国产人成免费视频| 国产精品美女久久久免费 | 亚洲成a人片77777kkkk| 国产精品高清全国免费观看| 3d动漫精品啪啪一区二区免费| 国产午夜亚洲精品不卡免下载| 亚洲国产精品白丝在线观看| 国产亚洲3p无码一区二区| 亚洲女人被黑人巨大进入| 毛片免费在线观看网址| 中文字幕免费在线观看| 青柠影视在线观看免费| 国产免费区在线观看十分钟| 亚洲av综合av一区二区三区| 91嫩草亚洲精品| 亚洲人成网www| 亚洲AV无码成人精品区在线观看| yy6080亚洲一级理论| 日本免费v片一二三区| 搡女人真爽免费视频大全| 亚洲黄色免费网址| 99爱视频99爱在线观看免费 | 国产AV无码专区亚洲AWWW| 国产高清在线免费视频| 女性自慰aⅴ片高清免费| 男女免费观看在线爽爽爽视频| 99久久99热精品免费观看国产| 中文字幕无码毛片免费看| 国产va免费精品| 一级人做人a爰免费视频 | 国产亚洲精品激情都市| 国产亚洲精品成人a v小说| 4338×亚洲全国最大色成网站| 亚洲成av人片天堂网老年人| 四虎影视在线永久免费看黄| 免费a级毛片大学生免费观看| 国产一区二区视频免费| 少妇亚洲免费精品| 亚洲一区爱区精品无码| 亚洲AV无码久久寂寞少妇|