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

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

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

    176142998

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

    一說起傳說中的SSH(Struts+Spring+Hibernate)架構(gòu),許多人的心里面就沒有底。

    依照本人來看,所謂的整合沒有什么神秘的,只不過就是讓三個(gè)框架在一起協(xié)同的工作,我們做的主要工作就是讓其知道彼此的存在,打成“統(tǒng)一戰(zhàn)線聯(lián)盟”以后,再各自為戰(zhàn),互不干擾。

    下面就本人知道的一些整合方法一一敘述。

    1 Struts+Spring

    主要就是讓Struts知道Spring的存在,我們可以采用兩種辦法。

    (1) 運(yùn)用Struts的插件方法,添加struts-congif.xml的<plug-in>節(jié)點(diǎn)。

    示例代碼如下:

    xml 代碼
    1. <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">  
    2.         <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />  
    3.     </plug-in>   

    上段代碼意圖很簡單:把Struts的配置文件和Spring的配置文件聯(lián)系起來,這樣Struts就知道了Spring的存在。

    另外,在web.xml里面需要配置一個(gè)Spring的監(jiān)聽器,示例代碼如下:

    xml 代碼
    1. <listener>  
    2.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    3.     </listener>   

    第一種方法完畢。

    (2) 直接在web.xml里面進(jìn)行加載。

    這種方法與上種方法的不同之處在于Spring的配置文件加載的位置不同,上種方法是在struts-cong.xml中聲明,而這種方法是在web.xml里面進(jìn)行聲明,示例代碼如下:

    xml 代碼
    1. <context-param>  
    2.         <param-name>contextConfigLocation</param-name>  
    3.         <param-value>  
    4.              /WEB-INF/applicationContext-module1.xml,   
    5.              /WEB-INF/applicationContext-module2.xml  
    6.         </param-value>  
    7.     </context-param>  

    這樣我們就實(shí)現(xiàn)了第二種方法的SS整合。

    問題至于我們還要遇到一個(gè)小問題,那就是Struts如何實(shí)用Spring的特性?Struts怎么就知道Spring注入的Bean呢?當(dāng)然,這需要我們進(jìn)行編程式的聲明,眾所周知,在Strus的Action里面有一個(gè)setServlet方法,我們此時(shí)就需要覆蓋這個(gè)方法,當(dāng)ActionServlet把請求轉(zhuǎn)發(fā)到此Action時(shí),Action就可以實(shí)用Spring的特性。

    示例代碼如下:

     

    java 代碼
    1. import org.springframework.context.ApplicationContext;   
    2. import org.springframework.web.context.support.WebApplicationContextUtils;   
    3.   
    4. public void setServlet(ActionServlet actionServlet) {   
    5.         try {   
    6.             super.setServlet(actionServlet);   
    7.              ServletContext servletContext = actionServlet.getServletContext();   
    8.              context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);   
    9.          } catch(Exception e) {   
    10.              e.printStackTrace();   
    11.          }   
    12.      }  

     

    其中context是ApplicationContext的實(shí)例,有了上串代碼以后我們就可以以下面的方式進(jìn)行Spring的特性利用了!

    java 代碼
    1. protected IXjdjService getXjdjServiceImp(){   
    2.         return (IXjdjService) context.getBean("xjdj");   
    3.      }  

    到此OK,Struts與Spring的整合成功。

    2 Spring+Hibernate

    可以說Spring與Hibernate的整合是非常完善的,具體要素如下:

    在Hibernate中,最重要的無非就是兩點(diǎn),一是配置數(shù)據(jù)庫連接池,二是配置實(shí)體類的映射文件。現(xiàn)在我貼出上述兩點(diǎn)在Spring里面是怎么配的,配置完畢以后,我們完全可以刪除hibernate.cfg.xml文件。示例代碼如下:

    xml 代碼
    1. <bean id="dataSource"     
    2.         class="org.springframework.jdbc.datasource.DriverManagerDataSource">     
    3.         <property name="driverClassName">     
    4.             <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>     
    5.         </property>     
    6.         <property name="url">     
    7.             <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EXAM</value>     
    8.         </property>     
    9.         <property name="username">     
    10.             <value>sa</value>     
    11.         </property>     
    12.         <property name="password">     
    13.             <value>135780</value>     
    14.         </property>     
    15.     </bean>     
    16.     <!-- 配置Hibernate會(huì)話工廠 -->     
    17.     <bean id="sessionFactory"     
    18.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">     
    19.         <property name="dataSource">     
    20.             <ref bean="dataSource" />     
    21.         </property>     
    22.         <!-- 在此可以配置Hibernate會(huì)話工廠的屬性 -->     
    23.         <property name="hibernateProperties">     
    24.             <props>     
    25.                 <prop key="hibernate.dialect">     
    26.                      org.hibernate.dialect.SQLServerDialect      
    27.                 </prop>     
    28.                 <prop key="hibernate.show_sql">true</prop>     
    29.                      
    30.              </props>     
    31.         </property>     
    32.         <!-- 在此可以匹配*.hbm.xml映射文件 -->     
    33.         <property name="mappingDirectoryLocations">     
    34.             <list>     
    35.                 <value>     
    36.                      classpath:/com/wjh/comm/framework/bean      
    37.                 </value>     
    38.                    
    39.             </list>     
    40.         </property>     
    41.         <property name="mappingResources">  
    42.            <list>  
    43.                 <value>com/wjh/example/User.hbm.xml</value>  
    44.           </list>  
    45. </property>  
    46. </bean>   

    OK,到此就完成了Spring+Hibernate的整合,縱觀整個(gè)過程,我們可以發(fā)現(xiàn)一點(diǎn),那就是所謂的整合就是他們配置文件的融合,只要抓住這一點(diǎn),再復(fù)雜的程序也會(huì)變的簡單。

    網(wǎng)友經(jīng)常說,我也是這么做的,但是總是不成功。說實(shí)在的這個(gè)東西理論很簡單,但是實(shí)際操作起來確實(shí)要費(fèi)一番周折,大家在整合過程中出現(xiàn)了什么問題,不妨貼出來,我們一起討論討論!

    http://hi.baidu.com/ziheng65/blog/item/0546d01609bedb4f21a4e904.html

    posted on 2008-06-13 13:45 飛飛 閱讀(260) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费毛片在线看片免费丝瓜视频| 成人A级毛片免费观看AV网站| 国产hs免费高清在线观看| 亚洲av成人综合网| 95免费观看体验区视频| 亚洲成AV人片在线观看| jizz免费一区二区三区| 亚洲精品国产精品乱码不卡| 乱爱性全过程免费视频| 亚洲综合日韩久久成人AV| 成人免费无码H在线观看不卡| 亚洲熟妇丰满多毛XXXX| 很黄很污的网站免费| 亚洲av日韩av无码黑人| 16女性下面无遮挡免费| 国产精品亚洲片夜色在线| 四虎免费大片aⅴ入口| 久久综合亚洲色hezyo| 免费在线观看日韩| 好吊色永久免费视频大全| 永久亚洲成a人片777777| 亚洲午夜免费视频| 亚洲人成在线精品| 国产成人aaa在线视频免费观看| 牛牛在线精品观看免费正| 亚洲精品午夜无码专区| 国产精品怡红院永久免费| 亚洲色欲啪啪久久WWW综合网| 又粗又大又硬又爽的免费视频| 三上悠亚在线观看免费| 亚洲国产成人九九综合| 国产男女猛烈无遮档免费视频网站| 一级特黄特色的免费大片视频| 亚洲欧洲∨国产一区二区三区| 狠狠色婷婷狠狠狠亚洲综合 | 99re热精品视频国产免费| 91嫩草亚洲精品| 男人的天堂亚洲一区二区三区 | 亚洲网址在线观看| 免费看的黄色大片| 国产成人无码区免费内射一片色欲|