解决:将日志级别设置为debug,查看启动细节
log4j.propertites放在resources# Global logging configuration log4j.rootLogger=DEBUG,ERROR, stdout, files # MyBatis logging configuration... log4j.logger.mapper=ERROR # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n log4j.appender.files=org.apache.log4j.FileAppender log4j.appender.files.File=memberApp.log log4j.appender.files.layout=org.apache.log4j.PatternLayout log4j.appender.files.layout.ConversionPattern=%d %5p [%t] - %m%n
启动发现错误:
但是依然无法结局问题,继续看后一个报错信息
Bean creation exception on FactoryBean type check: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name xxx
解决方式1,将pom添加扫描mapper.xml的节点
扫描二维码关注公众号,回复:
1101204 查看本文章
启动又报错了!!!
这难道是xml文件没有mapper相关接口的实现吗?
检查mapper的配置文件
这是有的,那就奇怪了,难道就是因为我将配置和接口分开了吗??
但是似乎还是不好使,因为本来我的mapper.xml和mapper接口是放在两个文件夹的,没放在同一个文件夹,生成的target也是分别得两个文件夹,即mapper.xml没和mapper接口放在同一个文件夹中
进一步解决:
src目录截图:
target截图
再次启动就是一切ok了
至于如何在applicationContext.xml中一次将总舵mapper.xml文件加以扫描呢
写法如下(如果是按照将mapper接口和mapper的实现xml文件放在两个同名包下,也就是相当于mapper配置文件和mapper接口在同意个文件夹下)
<!-- 配置SessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:config/*.xml" />
</bean>
<!-- 自动扫描mapper接口,注入sqlSessionFactory --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="mapper"/> </bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--<property name="mapperLocations" value="classpath:config/*.xml" />--> <!--加载mybatis的全局配置文件--> <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml" /> <property name="mapperLocations"> <list> <!--<value>classpath:mapper/InterestMapper.xml</value>--> <value>classpath:config/*.xml</value> </list> </property> </bean> <!-- 自动扫描mapper接口,注入sqlSessionFactory --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="mapper"/> </bean>
总结:综上,关于mapper接口和mapper实现的xml文件能否放在两个文件夹下
答案是肯定的,第一种是表面上的两个文件夹(同名文件夹)
target中能发现mapper和mapper的xml文件是放在了同一个文件夹下
target截图
第二种是真正的放在了两个文件夹,
target中mapper和mapper的xml文件还是在两个文件夹下
目录截图:
配置截图:
效果截图(target)