最近因為項目要求整合了spring+mybatis架構進行項目開發,現將相關整合配置文件整理如下:
基本架構:spring+springmvc+mybatis
分布式框架:dubbo+zookeeper
數據庫:mysql
數據庫連接池:Druid
1 數據庫連接配置信息jdbc.properties
1
2
3
4
5
6
7
|
#mysql version database druid # setting validationQuery=SELECT 1 jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql: //localhost:3306/ivan?useUnicode=true&characterEncoding=utf-8&useSSL=true jdbc.username=root jdbc.password=root |
2 spring配置文件spring-register.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?xml version= "1.0" encoding= "UTF-8" ?> <beans xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo= "http://code.alibabatech.com/schema/dubbo" xmlns= "http://www.springframework.org/schema/beans" xsi:schemaLocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans.xsd http: //code.alibabatech.com/schema/dubbo http: //code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!--引入配置文件--> <!-- <context:property-placeholder location= "classpath:config/jdbc.properties" />--> <bean class = "org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer" > <property name= "locations" > <list> <value>classpath:config/zookeeper.properties</value> <value>classpath:config/jdbc.properties</value> <value>classpath:config/log4j.properties</value> </list> </property> </bean> <bean id= "userService" class = "com.ivan.dubbo.service.impl.UserServiceImpl" /> <!--提供方應用信息,用于計算依賴關系--> <dubbo:application name= "ivan-dubbo-server" ></dubbo:application> <!--使用zookeeper廣播注冊中心暴露服務地址--> <dubbo:registry protocol= "zookeeper" address= "127.0.0.1:2181" /> <!-- 本機 偽集群 測試 --> <!-- <dubbo:registry protocol= "zookeeper" address= "zookeeper://127.0.0.1:4170?backup=127.0.0.1:4180,127.0.0.1:4190" />--> <!-- <dubbo:registry protocol= "zookeeper" address= "127.0.0.1:4170,127.0.0.1:4180,127.0.0.1:4190" />--> <!-- <dubbo:registry id= "ivan-dubbo-server1" protocol= "zookeeper" address= "127.0.0.1:4170" /> <dubbo:registry id= "ivan-dubbo-server2" protocol= "zookeeper" address= "127.0.0.1:4180" /> <dubbo:registry id= "ivan-dubbo-server3" protocol= "zookeeper" address= "127.0.0.1:4190" /> --> <!---使用dubbo協議在 20880 端口暴露服務--> <dubbo:protocol name= "dubbo" port= "20880" /> <!-- 官方注釋:掃描注解包路徑,多個包用逗號分隔,不填pacakge表示掃描當前ApplicationContext中所有的類。 測試發現:此處 package 不填寫包名會無法注冊Service,掃描全包需填寫包首即可或者填寫至類的上一級目錄。 --> <dubbo:annotation package = "com" /> <dubbo:service interface = "com.ivan.service.provider.UserService" ref= "userService" timeout= "1200000" ></dubbo:service> </beans> |
3 spring-mybatis.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
<?xml version= "1.0" encoding= "UTF-8" ?> <beans xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:tx= "http://www.springframework.org/schema/tx" xmlns= "http://www.springframework.org/schema/beans" xsi:schemaLocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-4.1.xsd http: //www.springframework.org/schema/tx http: //www.springframework.org/schema/tx/spring-tx-4.1.xsd"> <!--配置數據源--> <bean name= "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" init-method= "init" 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= "5" /> <property name= "maxActive" value= "20" /> <!--連接池最小空閑--> <property name= "minIdle" value= "0" /> <!--獲取連接池最大等待時間--> <property name= "maxWait" value= "60000" /> <property name= "poolPreparedStatements" value= "true" /> <property name= "maxPoolPreparedStatementPerConnectionSize" value= "33" /> <!--檢測有效sql--> <property name= "validationQuery" value= "${validationQuery}" /> <property name= "testOnBorrow" value= "false" /> <property name= "testOnReturn" value= "false" /> <property name= "testWhileIdle" value= "true" /> <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 --> <property name= "timeBetweenEvictionRunsMillis" value= "60000" /> <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 --> <property name= "minEvictableIdleTimeMillis" value= "25200000" /> <!-- 打開removeAbandoned功能 --> <property name= "removeAbandoned" value= "true" /> <!-- 1800 秒,也就是 30 分鐘 --> <property name= "removeAbandonedTimeout" value= "1800" /> <!-- 關閉abanded連接時輸出錯誤日志 --> <property name= "logAbandoned" value= "true" /> <!-- 監控數據庫 --> <property name= "filters" value= "mergeStat" /> </bean> <!--MyBatis配置文件--> <bean id= "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" > <property name= "dataSource" ref= "dataSource" /> <property name= "mapperLocations" value= "classpath*:com/ivan/**/mapping/*.xml" /> </bean> <bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer" > <property name= "basePackage" value= "com.ivan.dubbo.service.dao.mapper" /> <property name= "sqlSessionFactoryBeanName" value= "sqlSessionFactory" /> </bean> <!--配置事務管理--> <bean id= "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" > <property name= "dataSource" ref= "dataSource" /> </bean> <!--注解方式配置事務--> <!-- <tx:annotation-driven transaction-manager= "transactionManager" />--> <!-- 攔截器方式配置事物 --> <tx:advice id= "transactionAdvice" transaction-manager= "transactionManager" > <tx:attributes> <tx:method name= "insert*" propagation= "REQUIRED" /> <tx:method name= "update*" propagation= "REQUIRED" /> <tx:method name= "delete*" propagation= "REQUIRED" /> <tx:method name= "get*" propagation= "SUPPORTS" read-only= "true" /> <tx:method name= "find*" propagation= "SUPPORTS" read-only= "true" /> <tx:method name= "select*" propagation= "SUPPORTS" read-only= "true" /> </tx:attributes> </tx:advice> <!-- <span style= "font-family:FangSong_GB2312;" > </span>Spring aop事務管理 <span style= "font-family:FangSong_GB2312;" > 此處配置正確無法發布提供者服務,目前沒找到解決方案</span> --> <!-- <aop:config> <aop:pointcut id= "transactionPointcut" expression= "execution(* com.ivan..service.impl.*Impl.*(..))" /> <aop:advisor advice-ref= "transactionAdvice" pointcut-ref= "transactionPointcut" /> </aop:config> --> </beans> |
總結
以上所述是小編給大家介紹的spring與mybatis整合配置文件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:http://www.cnblogs.com/anqli-java/p/7567478.html