小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Spring2.5、Struts2、Ibatis開(kāi)發(fā)框架搭建(二) - 云開(kāi)月明的日志 -...

 WindySky 2009-03-20

三、整合Spring2.5,Struts2,iBATIS,DBCP,Log4j

3.1 what’s the point?

       為什么要“整合”這些框架呢?在程序代碼中由程序員負(fù)責(zé)處理與控制一切不是很好嗎?要這么多的框架搭配在一起工作有什么好處呢?答案只有一個(gè),“省事”,節(jié)省程序員開(kāi)發(fā)程序的時(shí)間。

整合這些框架的關(guān)鍵一點(diǎn)就是Spring,Spring是所有這些框架在一起工作的粘合劑,整合的工作重心就是將web MVC框架、ORM框架、數(shù)據(jù)庫(kù)緩沖池框架、日志框架等全部交給Spring管理,由Spring調(diào)配使用這些框架綜合在一起工作。

       3.2 Spring如何讓W(xué)eb項(xiàng)目加載?

              在第2.2小節(jié)中的配置參數(shù)中有一個(gè)listener是用來(lái)讓我們的web項(xiàng)目在啟動(dòng)時(shí)就可以自動(dòng)加載Spring框架及其參數(shù)配置文件的,即下面的這一行配置參數(shù)。

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

       </listener>

       3.3 Spring的參數(shù)配置文件如何被自動(dòng)加載上?

              配置了Spring自動(dòng)加載以后,在web項(xiàng)目的WEB-INF/web.xml中應(yīng)該配置Spring參數(shù)文件的加載位置,即在2.2小節(jié)中需要配置的

   <!-- 應(yīng)用程序上下文參數(shù),指定spring配置文件位置 -->

       <context-param>

              <param-name>contextConfigLocation</param-name>

              <param-value>/WEB-INF/spring/applicationContext.xml  /WEB-INF/spring/ibatis_dao.xml /WEB-INF/spring/struts_action.xml</param-value>

       </context-param>

在<param-value>后面配置Spring參數(shù)文件的路徑,有多個(gè)Spring的參數(shù)配置文件存在時(shí),各個(gè)參數(shù)文件之間用空格分隔開(kāi)。

       3.4 如何讓Spring管理Struts2?

              要讓Spring管理Struts2的action bean的創(chuàng)建等工作,需要在項(xiàng)目的src目錄中的struts.properties文件中指定

struts.objectFactory=spring

struts.objectFactory.spring.autoWire=type

       即2.3 小節(jié)配置參數(shù)中包含的這兩行。

       3.5 如何讓Spring管理數(shù)據(jù)庫(kù)緩沖池?

              DBCP或者C3p0等數(shù)據(jù)庫(kù)緩沖池可以在Spring的參數(shù)配置文件當(dāng)中去配置使用,例如在項(xiàng)目中配置DBCP數(shù)據(jù)庫(kù)緩沖池的話可以指定以下格式的參數(shù)配置:

 

       <bean id="dataSource"

              class="org.apache.commons.dbcp.BasicDataSource"

              destroy-method="close">

              <property name="driverClassName"

                     value="${jdbc.driverClassName}" />

              <property name="url" value="${jdbc.url}" />

              <property name="username" value="${jdbc.username}" />

              <property name="password" value="${jdbc.password}" />

              <property name="initialSize" value="4" />

              <property name="maxActive" value="20" />

              <property name="testWhileIdle" value="true" />

              <property name="validationQuery"

                     value="select count(0) from t_db_history where 1=2" />

              <property name="testOnBorrow" value="true" />

       </bean>

       上面各個(gè)參數(shù)值中有的使用的是$符號(hào)加{}的形式進(jìn)行配置的,這種配置格式需要在Spring當(dāng)中配置一個(gè)能夠加載.propertis文件的bean,如以下格式:

       <bean id="propertyConfigurer"

              class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

              <property name="locations">

                     <list>

                            <value>WEB-INF/jdbc.properties</value>

                     </list>

              </property>

       </bean>

       上面配置參數(shù)中的list元素后面跟隨.properties文件列表。

當(dāng)然,如果不想把參數(shù)文件寫在Spring以外,也可以在配置DBCP的時(shí)候直接將連接數(shù)據(jù)庫(kù)URL,用戶,密碼等等參數(shù)寫死在Spring當(dāng)中也是可以的。

       3.6 如果整合iBATIS框架?

              iBATIS框架要工作的話,需要指定一個(gè)全局的iBATIS參數(shù)配置文件,即在Spring中需要告訴iBATIS框架,你工作時(shí)需要使用的參數(shù)文件在哪里可以找到,另外,Spring框架對(duì)常見(jiàn)的ORM框架等等都進(jìn)行了封裝,所以要在Spring當(dāng)中配置iBATIS框架的話,實(shí)際上要配置的類是Spring框架當(dāng)中的某個(gè)類,如下:

 

       <bean id="sqlMapClient"

              class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

              <property name="configLocations"

                     value="WEB-INF/sql-map-config.xml" />

              <property name="dataSource" ref="dataSource" />

       </bean>

       上面的配置參數(shù)中的value="WEB-INF/sql-map-config.xml"即是用來(lái)告訴iBATIS框架它要使用的配置參數(shù)文件存放在哪個(gè)位置。

       以上配置參數(shù)中的property name="dataSource" ref="dataSource"即是用來(lái)告訴iBATIS框架,它要使用的數(shù)據(jù)源是在3.5小節(jié)中配置的數(shù)據(jù)庫(kù)緩沖池。

       3.7 如何使用Spring 2.5 提供的AutoWired功能?

              在Spring的參數(shù)配置文件中加入如下一行配置參數(shù)即可:

       <context:annotation-config />

       3.8 如何通過(guò)數(shù)據(jù)庫(kù)的表自動(dòng)生成實(shí)體類以及參數(shù)配置文件等等?

              需要使用iBATIS官方網(wǎng)站提供的iBATOR,在Eclipse當(dāng)中可以安裝該插件,Eclipse當(dāng)中安裝插件的方法這里不做描述。

              安裝好iBATOR插件以后,用Eclipse的新建功能向項(xiàng)目中加入一個(gè)用于自動(dòng)生成iBATIS實(shí)體類等的參數(shù)配置文件,在該文件當(dāng)中指定本機(jī)上的JDBC數(shù)據(jù)驅(qū)動(dòng)以及連接數(shù)據(jù)庫(kù)的參數(shù)等等,配置好要生成的實(shí)體類,DAO,SQL映射文件的存放路徑,如果一切正常,配置完成以后即可自動(dòng)根據(jù)數(shù)據(jù)庫(kù)當(dāng)中的表結(jié)構(gòu)來(lái)產(chǎn)生實(shí)體類以及DAO等等。

       3.9 iBATOR生成的實(shí)體類以及DAO等如何應(yīng)用?

              第一步需要先將生成的SQL映射文件添加到iBATIS的全局參數(shù)配置文件當(dāng)中去,具體是哪一個(gè)文件是iBATIS框架的參數(shù)配置文件呢?3.6小節(jié)中的<property name="configLocations" value="WEB-INF/sql-map-config.xml" />這一行配置的是哪一個(gè)文件,那么那個(gè)文件就是iBATIS框架的全局配置參數(shù)文件。

       向里面加入某一個(gè)實(shí)體類對(duì)應(yīng)的SQL映射文件的配置參數(shù)是如下格式:

       <sqlMap resource="edu/xw/ji/sqlmaps/t_db_history_SqlMap.xml" />

       3.10 在Spring當(dāng)中如何配置iBATOR自動(dòng)生成的DAO類呢?

              iBATOR代碼生成工具自動(dòng)生成的DAO類的實(shí)現(xiàn)類有些特殊,即DAO實(shí)現(xiàn)類在實(shí)例化的時(shí)候需要傳入一個(gè)構(gòu)造參數(shù),在3.6小節(jié)當(dāng)中配置的那個(gè)類的數(shù)據(jù)類型就是這個(gè)構(gòu)造函數(shù)要傳入的參數(shù)數(shù)據(jù)類型,那么在Spring當(dāng)中配置DAO實(shí)例時(shí)告訴它構(gòu)造函數(shù)的參數(shù)是什么就可以了,如下:

       <bean id="sys_job_type_dao"

              class="edu.xw.ji.dao.SysJobTypeDAOImpl">

              <constructor-arg>

                     <ref bean="sqlMapClient" />

              </constructor-arg>

       </bean>

       3.11 Spring如何管理Struts2的Action類?

              要讓Struts2的Action類與Spring一起工作,需要先在Spring當(dāng)中定義bean,即將Struts2的Action當(dāng)成普通的bean定義在Spring當(dāng)中,唯一需要注意的地方是要在Spring的配置參數(shù)當(dāng)中加一句scope="prototype"。

              然后在Struts2的參數(shù)配置文件中再去使用這個(gè)在Spring當(dāng)中定義好的bean id就行了。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多