请稍等 ...
×

采纳答案成功!

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

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

4回答

翔仔 2019-03-30 00:41:03
<?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下载
官方微信