项目启动很慢,一致加载不出来,感觉是进入死循环

解决:将日志级别设置为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)



 
 


猜你喜欢

转载自blog.csdn.net/qq_36922927/article/details/79833805