<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(已滿)

      回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 7723日本高清完整版免费| 免费人成视频在线| 亚洲日韩在线观看| 亚洲av无码精品网站| 黄色网页在线免费观看| 四虎国产精品免费视| 午夜影院免费观看| 亚洲视频一区二区在线观看| 无遮挡a级毛片免费看| 一级女人18毛片免费| 边摸边吃奶边做爽免费视频网站| 在线视频免费观看www动漫| 亚洲GV天堂GV无码男同| 亚洲成av人片不卡无码久久| 特色特黄a毛片高清免费观看| 亚洲高清视频一视频二视频三| 在线免费观看h片| 久久久久亚洲AV无码永不| 免费a级毛片高清视频不卡 | 亚洲视频在线视频| 成人免费无码大片A毛片抽搐色欲 成人免费无码大片a毛片 | 久久国产乱子免费精品| 亚洲一级毛片视频| 四虎影视永久免费观看| 亚洲成人免费在线| 牛牛在线精品观看免费正| 亚洲香蕉免费有线视频| 又黄又爽无遮挡免费视频| 91在线手机精品免费观看| 亚洲www在线观看| 国产成人精品日本亚洲| 国产精品无码素人福利免费| 久久永久免费人妻精品| 高清免费久久午夜精品| 亚洲精品韩国美女在线| 国产亚洲婷婷香蕉久久精品 | 1000部拍拍拍18勿入免费凤凰福利| 三年片在线观看免费观看大全中国| 1区1区3区4区产品亚洲| 亚洲开心婷婷中文字幕| 免费jjzz在线播放国产|