请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

插入代码

4回答

翔仔 2019-03-30 00:41:03
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
76
77
78
79
80
81
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 配置整合mybatis过程 -->
    <!-- 1.配置数据库相关参数properties的属性:${url} -->
    <bean class="com.imooc.o2o.util.EncryptPropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:jdbc.properties</value>
                <value>classpath:redis.properties</value>
            </list>
        </property>
        <property name="fileEncoding" value="UTF-8" />
    </bean>
    <!-- 2.数据库连接池 -->
    <bean id="abstractDataSource" abstract="true"
        class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <!-- c3p0连接池的私有属性 -->
        <property name="maxPoolSize" value="30" />
        <property name="minPoolSize" value="10" />
        <!-- 关闭连接后不自动commit -->
        <property name="autoCommitOnClose" value="false" />
        <!-- 获取连接超时时间 -->
        <property name="checkoutTimeout" value="10000" />
        <!-- 当获取连接失败重试次数 -->
        <property name="acquireRetryAttempts" value="2" />
    </bean>
    <bean id="master" parent="abstractDataSource">
        <!-- 配置连接池属性 -->
        <property name="driverClass" value="${jdbc.driver}" />
        <property name="jdbcUrl" value="${jdbc.master.url}" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    <bean id="slave" parent="abstractDataSource">
        <!-- 配置连接池属性 -->
        <property name="driverClass" value="${jdbc.driver}" />
        <property name="jdbcUrl" value="${jdbc.slave.url}" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    <!-- 配置动态数据源,这儿targetDataSources就是路由数据源所对应的名称 -->
    <bean id="dynamicDataSource" class="com.imooc.o2o.dao.split.DynamicDataSource">
        <property name="targetDataSources">
            <map>
                <entry value-ref="master" key="master"></entry>
                <entry value-ref="slave" key="slave"></entry>
            </map>
        </property>
    </bean>
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
        <property name="targetDataSource">
            <ref bean="dynamicDataSource" />
        </property>
    </bean>
 
    <!-- 3.配置SqlSessionFactory对象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource" />
        <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <!-- 扫描entity包 使用别名 -->
        <property name="typeAliasesPackage" value="com.imooc.entity" />
        <!-- 扫描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml" />
    </bean>
 
    <!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
        <!-- 给出需要扫描Dao接口包 -->
        <property name="basePackage" value="com.imooc.o2o.dao" />
    </bean>
</beans>


0 回复 有任何疑惑可以回复我~
提问者 慕设计1401902 2019-03-30 00:27:09

https://img1.sycdn.imooc.com//szimg/5c9e47370001a1fe13430489.jpg

更改了一下现在报这个错

0 回复 有任何疑惑可以回复我~
提问者 慕设计1401902 2019-03-29 22:03:31

我把防火墙关了以后成这样了

https://img1.sycdn.imooc.com//szimg/5c9e256b0001a86c11960545.jpg

https://img1.sycdn.imooc.com//szimg/5c9e256b0001fd6d10540354.jpg

但是我jdbc完全是按老师手记里面写的https://img1.sycdn.imooc.com//szimg/5c9e25ae0001611407130178.jpg

0 回复 有任何疑惑可以回复我~
提问者 慕设计1401902 2019-03-29 22:00:42

https://img1.sycdn.imooc.com//szimg/5c9e24da0001e4dc08290612.jpg

打开以后界面是这样的    我好像把防火墙打开了   是不是和防火墙有关系

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    同学好,跟防火墙没有任何关系哈,你看你这里报错是没法解析spring-dao.xml里面的jdbc.url这个变量,可你的jdbc配置文件里面也没这个jdbc.url变量啊。。。因此跟视频里的配置不一样呢。。得有这个变量或者用jdbc.master.url
    回复 有任何疑惑可以回复我~ 2019-03-30 00:26:16
  • 提问者 慕设计1401902 回复 翔仔 #2
    嗯我刚刚发现spring-dao缺的代码
    更改以后发现新的报错
    Error creating bean with name 'sqlSessionFactory' defined in file [/root/apache-tomcat-8.5.39/webapps/o2o/WEB-INF/classes/spring/spring-dao.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'dataSource' available
    回复 有任何疑惑可以回复我~ 2019-03-30 00:30:07
  • 翔仔 回复 提问者 慕设计1401902 #3
    这里说的是同学没有设置一个dataSource去定义数据源。。具体可以依据我的去修改
    回复 有任何疑惑可以回复我~ 2019-03-30 00:40:50
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号