最近因为项目要求整合了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