[導(dǎo)入]MyEclipse + Struts+Spring+hibernate 學(xué)習(xí)筆記 之a(chǎn)pplicationContext解析
Posted on 2008-07-31 14:53 朱 閱讀(251) 評(píng)論(0) 編輯 收藏<?xml version="1.0" encoding="UTF-8"?> <beans>
??建立一個(gè)數(shù)據(jù)源
? 建立會(huì)話工廠類(lèi),這個(gè)類(lèi)使用spring專(zhuān)門(mén)為hibernate3提供LocalSessionFactoryBean
??? 定義事務(wù)管理器,這個(gè)也是 spring專(zhuān)門(mén)為hibernate3提供的HibernateTransactionManager 事務(wù)管理器
?定義實(shí)體DAO
?為上面的實(shí)體DAO定義一個(gè)代理(proxy)類(lèi),這是spring為解決事務(wù)問(wèn)題而提供TransactionProxyFactoryBean動(dòng)態(tài)事務(wù)代理類(lèi)
??為 path="/login"?的struts action 定義實(shí)際的action類(lèi),該action?已經(jīng)進(jìn)行?type="org.springframework.web.struts.DelegatingActionProxy"設(shè)置
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
?<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
? <property name="driverClassName">
?? <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
? </property>
? <property name="url">
?? <value>jdbc:microsoft:sqlserver://192.168.0.6:1433</value>
? </property>
? <property name="username">
?? <value>sa</value>
? </property>
? <property name="password">
?? <value></value>
? </property>
?</bean>
?
?<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
? <property name="dataSource">
?? <ref local="dataSource" />? --引用上面的數(shù)據(jù)源
? </property>
? <property name="mappingResources">? --調(diào)入映射文檔
?? <list>
??? <value>com/yourcompany/User.hbm.xml</value>?
?? </list>
? </property>
? <property name="hibernateProperties">? --相關(guān)設(shè)置
?? <props>
??? <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
??? <prop key="hibernate.show_sql">true</prop>
?? </props>
? </property>
?</bean>
??
?<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
? <property name="sessionFactory">
?? <ref local="sessionFactory" />?? --引用會(huì)話工廠類(lèi)
? </property>
?</bean>
?<bean id="userDAO" class="com.yourcompany.UserDAOImp">
? <property name="sessionFactory">
?? <ref local="sessionFactory" />--引用會(huì)話工廠類(lèi)
? </property>
?</bean>
?
?<bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
? <property name="transactionManager">
?? <ref bean="transactionManager" />? --指定事務(wù)管理器(需要是spring專(zhuān)用的)
? </property>
? <property name="target"> --目標(biāo)實(shí)體DAO類(lèi)
?? <ref local="userDAO" />
? </property>
? <property name="transactionAttributes"> --定義要使用事務(wù)的方法
?? <props>
??? <prop key="insert*">PROPAGATION_REQUIRED</prop>? --所有insert開(kāi)頭的方法都使用事務(wù),出錯(cuò)要回滾
??? <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> --所有g(shù)et開(kāi)頭的方法都使用只讀事務(wù)
??? <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>--所有ist開(kāi)頭的方法都使用只讀事務(wù)
?? </props>
? </property>
?</bean>
? <bean name="/login" class="com.yourcompany.struts.action.LoginAction" singleton="false">
??? <property name="userDAO">
??? <ref bean="userDAOProxy" />? --注意,這里指定的userDAO是上面定義的代理類(lèi)
? </property>
?</bean>
</beans>?
文章來(lái)源:http://www.aygfsteel.com/zhangrenquan/articles/85594.html