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

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

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

    軟件工程實(shí)踐者

    統(tǒng)計(jì)

    留言簿

    友情鏈結(jié)

    閱讀排行榜

    評(píng)論排行榜

    Oracle ADF和Spring的結(jié)合

    Oracle ADF(Application Developement Framework)是一套快速開發(fā)企業(yè)級(jí)J2EE的MVC框架. Oracle在Model層和業(yè)務(wù)服務(wù)層上提供的缺省實(shí)現(xiàn)對(duì)開發(fā)基于數(shù)據(jù)庫(kù)的應(yīng)用提供了極大的便利,尤其是它的ADF BC(Business components),這個(gè)微型的MVC框架提供了直接映射數(shù)據(jù)庫(kù)表的能力,結(jié)合View端的展現(xiàn)(Oracle 提供了桌面端Swing/JClient和Web端UIX的實(shí)現(xiàn)),開發(fā)起來(lái)就如同用Borland的數(shù)據(jù)感知控件一樣。

    Spring目前是J2EE社區(qū)一個(gè)比較火的框架,應(yīng)用的比較廣,那如何進(jìn)行二者的有機(jī)結(jié)合呢?

    我們已經(jīng)習(xí)慣了Spring的IOC框架,方便的使用getBean()方法來(lái)獲得我們想要的對(duì)象,因此,如果能通過(guò)Spring來(lái)生成需要的對(duì)象,然后把這個(gè)對(duì)象注冊(cè)為Data Control(Oracle中數(shù)據(jù)感知組件),這樣就可以利用ADF BC的威力來(lái)快速構(gòu)建一個(gè)數(shù)據(jù)庫(kù)應(yīng)用。問(wèn)題的關(guān)鍵就在于ADF為每一個(gè)data control指定了一個(gè)工廠類屬性,而這個(gè)工廠類屬性的實(shí)例值需要我們用Spring來(lái)生成,就OK了。舉一個(gè)實(shí)際的例子:
    在Spring中,我們定義了如下的接口:
    package nl.amis.spring.hrm;
    import java.util.List;
    
    public interface HrmService  {
      public void setEmployeeDao(EmpDAO employeeDAO);
      public List getAllEmployees();    
      public long getSalarySum(); 
    }


    配置文件為:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
      <bean id="dataSourceDBDirect"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource"
            destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="tiger"/>
      </bean>
      <bean id="employeeDAO" class="nl.amis.spring.jdbc.EmployeeJdbcDAO">
        <property name="dataSource">
          <ref local="dataSourceDBDirect"/>
        </property>
      </bean>
      <bean id="hrmService" class="nl.amis.spring.hrm.HrmServiceImpl">
        <property name="employeeDao">
          <ref local="employeeDAO"/>
        </property>
      </bean>
    </beans>

    在Oracle JDeveloper開發(fā)環(huán)境下,我們找到
    nl.amis.spring.hrmServiceImp這個(gè)類,然后用菜單命令把它注冊(cè)為一個(gè)Data control組件。這個(gè)新生成的Data control缺省名字是:HrmServiceImplDataControl,查看它的屬性,有一個(gè)Factory class屬性,找到這個(gè)屬性所指的類,修改如下源碼:

    Object bean = oracle.jbo.common.JBOClass.forName(beanClass).newInstance();


    上面的代碼就是生成HrmServiceImpl對(duì)象的代碼,把它改為:

    ApplicationContext springCtx = new ClassPathXmlApplicationContext("SpringConfig.xml");
    Object bean = springCtx.getBean("hrmService");


    這樣主要工作就OK啦,剩下的就是修改一下Data Control的配置文件(在注冊(cè)成為Data Control后生成的同名.xml文件),修改
    <content>中的<AccessorAtribute>部分,把id改為:allEmployees; BeanClass 改為nl.amis.spring.hrm.Employee; IsCollection="true"; Type改為java.Util.List.
    以上修改表明我們需要的是通過(guò)employeeDao獲得的Employee的集合,把這個(gè)結(jié)合作為結(jié)果集應(yīng)用到ADF BC中。

    英文原文出自:http://technology.amis.nl/blog/index.php?p=765

    posted on 2006-01-06 22:06 軟件工程實(shí)踐者 閱讀(1009) 評(píng)論(0)  編輯  收藏 所屬分類: 開源框架


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产成人高清在线观看| 免费看黄视频网站| 亚洲日本一区二区三区在线不卡| 亚洲免费二区三区| 四虎在线成人免费网站| 亚洲国产精品yw在线观看| 69视频在线观看高清免费| 亚洲综合网美国十次| 91成人免费在线视频| 亚洲成人激情小说| 蜜桃精品免费久久久久影院| 日韩欧美亚洲中文乱码| 日韩高清在线高清免费| 国产产在线精品亚洲AAVV| 国产a v无码专区亚洲av| 女人隐私秘视频黄www免费| 亚洲av无码潮喷在线观看| 最近中文字幕无免费| 亚洲综合久久精品无码色欲| 日韩激情无码免费毛片| 一级毛片一级毛片免费毛片| 亚洲精品你懂的在线观看| 亚欧免费视频一区二区三区| 亚洲精品无码专区在线播放| 亚洲国产专区一区| 一区二区三区在线免费看| 亚洲一区二区久久| 免费A级毛片无码久久版| 国产免费无码AV片在线观看不卡| 亚洲明星合成图综合区在线| 在线播放免费人成视频在线观看| 四虎精品成人免费视频| 久久亚洲精品无码AV红樱桃| 成人毛片视频免费网站观看| 精品久久久久久无码免费| 亚洲福利电影在线观看| 国产免费人视频在线观看免费| 在线观看人成视频免费无遮挡| 亚洲精品亚洲人成在线播放| 亚洲女同成人AⅤ人片在线观看| 18女人水真多免费高清毛片|