數據源配置
一配置數據信息(在.properties文件中)
1:數據庫數據信息(驅動 URL 用戶名 密碼)
jdbc.driver=oracle.jdbc.driver.OracleDriver(
有對應的jar包 ojdbc14.jar)
jdbc.url=jdbc:oracle:thin:@172.16.7.10:1521: testdb
jdbc.username=devpcmall
jdbc.password=oracle
2:連接池的配置(一些屬性值得配置)
dbcp.initialSize=5
dbcp.maxActive=20
(最大激活數 )
dbcp.maxIdle=10
(最大空閒數 )
cpool.checkoutTimeout=5000
cpool.minPoolSize=20
cpool.maxPoolSize=50
cpool.maxIdleTime=7200
cpool.maxIdleTimeExcessConnections= 1800
cpool.acquireIncrement=1
3:hibernate的配置(屬性值得配置)
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect(方言
針對特定的數據庫生成優化的sql hibernate-core-3.3.2.GA.jar jar包)
hibernate.show_sql=false(輸出sql到控制檯)
hibernate.format_sql=false(格式化sql語句)
hibernate.fetch_size=50(一次性從數據庫中取數據的量
相當於讀)
hibernate.batch_size=25(對數據庫進行批量刪除
更新 插入的批次大寫 相當於寫)
二創建spring.xml文件配置連接池 hibernate等的屬性,事務管理 將其整合在一起
1:數據源配置(整合數據庫信息和連接池的一些屬性在連接池中)
<bean id= "dataSource" class ="com.mchange.v2.c3p0.ComboPooledDataSource">(c3p0-0.9.1.2.jar)
<property name ="driverClass" value="${jdbc.driver}" />(從properties文件中取值)
<property name ="jdbcUrl" value="${jdbc.url}" />
<property name ="user" value="${jdbc.username}" />
<property name ="password" value="${jdbc.password}" />
<property name ="autoCommitOnClose" value= "true"/>
<property name ="checkoutTimeout" value= "${cpool.checkoutTimeout}"/>
<property name ="initialPoolSize" value="${cpool.minPoolSize}"/>
<property name ="minPoolSize" value="${cpool.minPoolSize}"/>
<property name ="maxPoolSize" value="${cpool.maxPoolSize}"/>
<property name ="maxIdleTime" value="${cpool.maxIdleTime}"/>
<property name ="acquireIncrement" value= "${cpool.acquireIncrement}"/>
<property name ="maxIdleTimeExcessConnections" value= "${cpool.maxIdleTimeExcessConnections}" />
</bean >
2:hibernate配置
<bean id= "sessionFactory" class= "org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >(建立基於註解的會話工廠
org.springframework.orm-3.0.5.RELEASE.jar)
<propertyname="dataSource"ref="dataSource"/>(引入上邊將數據庫連接池的信息)
<propertyname="namingStrategy">動態表名映射
一個配置文件一個類映射多個表 表結構要相同 hibernate-core-3.3.2.GA.jar
<bean class ="org.hibernate.cfg.ImprovedNamingStrategy" />
</property >
<propertyname="hibernateProperties">
<props >
<prop key= "hibernate.dialect">${hibernate.dialect} </prop >
<prop key= "hibernate.show_sql">${hibernate.show_sql} </prop >
<prop key= "hibernate.format_sql">${hibernate.format_sql} </prop >
<prop key= "hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider </prop >
( hibernate-ehcache-3.3.2.GA.jar 裏的緩存類)
<prop key= "hibernate.cache.use_query_cache" >false </prop >
(二級緩存的開閉)
<prop key= "hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory </prop >
(hibernate-core-3.3.2.GA.jar hql查詢語言)
<prop key= "hibernate.jdbc.fetch_size">${hibernate.fetch_size} </prop >
<prop key= "hibernate.jdbc.batch_size">${hibernate.batch_size} </prop >
</props >
</property >
<propertyname="packagesToScan">(hibernate
讀取實體 標註實體路徑)
<list >
<value >com.holytax.*.*.entity </value >
<value >com.holytax.*.*.*.entity </value >
</list >
</property >
<propertyname="eventListeners">監聽事件
<map >
<!-- 在事務提交前觸發,在當前記錄中添加審計信息 -->
<entry key ="save-update">
<list >
<bean class= "com.holytax.base.dao.AuditListener" />項目中寫好的類
<bean class= "org.hibernate.event.def.DefaultSaveOrUpdateEventListener" />hibernate-core-3.3.2.GA.jar
</list >
</entry >
<entry key ="save">
<list >
<bean class= "com.holytax.base.dao.AuditListener"/ >
<bean class= "org.hibernate.event.def.DefaultSaveEventListener" />
</list >
</entry >
<entry key ="update">
<list >
<bean class= "com.holytax.base.dao.AuditListener" />
<bean class= "org.hibernate.event.def.DefaultUpdateEventListener" />
</list >
</entry >
<entry key ="merge">
<list >
<bean class= "com.holytax.base.dao.AuditListener" />
<bean class= "org.hibernate.event.def.DefaultMergeEventListener" />
</list >
</entry >
<!-- post 在數據提交之後觸發,在日誌文件或是數據庫中記錄日誌 -->
<entry key ="post-delete">
<list >
<bean class= "com.holytax.base.dao.AuditListener" />
</list >
</entry >
<entry key ="post-insert">
<list >
<bean class= "com.holytax.base.dao.AuditListener" />
</list >
</entry >
<entry key ="post-update">
<list >
<bean class= "com.holytax.base.dao.AuditListener" />
</list >
</entry >
</map >
</property >
</bean>
3:事物管理器的配置 (單數據源)org.springframework.orm-3.0.5.RELEASE.jar org.springframework.jdbc-3.0.5.RELEASE.jar
<bean id= "transactionManager" class= "org.springframework.orm.hibernate3.HibernateTransactionManager" >
<property name ="sessionFactory" ref="sessionFactory" />2中hibernate的配置
</bean >
<bean id ="jdbcTemplate" class= "org.springframework.jdbc.core.simple.SimpleJdbcTemplate" >
<constructor-arg ref ="dataSource" />
操作數據庫 jdbc持久層開發 是spring對覺得不錯的封裝
</bean >
4:各模塊所需事物的詳細配置(上邊是公共的事物配置)
<tx:advice id= "txAdvice" transaction-manager ="transactionManager">引入3中事物管理器
<tx:attributes >
<tx:method name ="save*" propagation="REQUIRED"/>
propagetion 屬性有7種
<tx:method name ="insert*" propagation="REQUIRED"/>
<tx:method name ="update*" propagation="REQUIRED"/>
<tx:method name ="merge*" propagation="REQUIRED"/>有就更新
沒有就插入
<tx:method name ="delete*" propagation="REQUIRED"/>
<tx:method name ="add*" propagation="REQUIRED"/>
<tx:method name ="remove*" propagation="REQUIRED"/>
<tx:method name ="match*" propagation="REQUIRED"/>
<tx:method name ="confirm*" propagation="REQUIRED"/>
<tx:method name ="run*" propagation="REQUIRED"/>
<tx:method name ="import*" propagation="REQUIRED"/>
<tx:method name ="export*" propagation="REQUIRED"/>
<tx:method name ="dealWith*" propagation="REQUIRED"/>
<tx:method name ="get*" propagation="REQUIRED" read-only= "true"/>
<tx:method name ="find*" propagation="REQUIRED" read-only= "true"/>
<tx:method name ="search*" propagation="REQUIRED" read-only= "true"/>
</tx:attributes >
</tx:advice >
5:manager的配置
<bean id ="manager" class="com.holytax.base.service.BaseManager">
<property name ="dao" ref="dao"/>
<property name ="sqlDao" ref="iBatisDao"/>
</bean >
<bean id ="baseDao" class="com.holytax.base.dao.BaseDao">
<property name ="sessionFactory" ref="sessionFactory"/>
<property name ="jdbcTemplate" ref="jdbcTemplate"/>
</bean >
<bean id ="dao" class="com.holytax.base.dao.ComDao" parent= "baseDao"></bean >
<bean id ="baseAction" class="com.holytax.base.action.BaseAction"></bean >
<bean id ="proxyManager" class="com.holytax.base.service.ProxyManager" parent= "manager"></bean >
<bean id ="dbMgr" class="com.holytax.base.service.DBManager" parent= "manager"></bean >
6:面向切面編程aop配置
<aop:config>
<aop:advisorid="managerTx"advice-ref="txAdvice"pointcut="execution(*
*..service.*Manager.*(..))"order="0"/>
<aop:advisor id ="managerTxEx" advice-ref="txAdvice"pointcut="execution(*
*..service..*Manager.*(..))"order= "1" </aop:config >
三:最後將.properties 和spring.xml文件注入總spring配置文件中(applicationContext.xml)
四:總結數據源配置步驟(基本上就按上述步驟配置)
1:在properties文件中配置數據庫(驅動 URL 用戶名 密碼)的參數, 連接池、 hibernate 的一些屬性值
2:在spring.xml文件中配置
連接池(datesource 注入連接池相關類 在該類中配置相關屬性)
hibernate屬性(注入sessionfactory相關類,將配置好的連接池datasource引入該類中 同時配置hibernate的相關屬性和一些其他設置 《動態映射表名 監聽》等)
配置事物管理器(注入相關類 transactionManager 其中引入hibernate的sessionfactory和jdbc模板)
配置各模塊事物 注入事物管理器中
面向切面編程配置
3:將以上兩個文件注入spring總配置文件中applicationContext.xml
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.