BrickieHard 2021-04-26 14:36 采纳率: 0%
浏览 46

Springp中SqlSessionFactoryBeanid不为sqlSessionFactory

<!-- 数据源 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="${jdbc.driver}"></property>
		<property name="url" value="${jdbc.url}"></property>
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
	</bean>
	<!-- SqlSessionFactory对象 -->
	<bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- <property name="dataSource" ref="dataSource"></property> -->
		<property name="typeAliasesPackage" value="com.sxt.pojo"></property>
	</bean>
	<!-- 扫描器 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.sxt.mapper"></property>
		<!-- <property name="sqlSessionFactory" ref="factory"></property> -->
		<property name="sqlSessionFactoryBeanName" value="factory"></property>
	</bean>

全局配置属性为:default-autowire="byName"  自动注入

配置如上,可以正常运行,问题如下:

1. MapperScannerConfigurer不使用:<property name="sqlSessionFactory" ref="factory"></property>的原因在于

a.自动注入的优先级比较高,针对那些有类对象的属性的类,会优先加载

b.MapperScannerConfigurer中有很多对象属性的类,此时初始化sqlSessionFactory时,会寻找factory,而factory中有dataSource属性会自动注入名为dataSource的bean,但此时配置文件尚未加载,所以会报错。

c.而使用<property name="sqlSessionFactoryBeanName" value="factory"></property>相当于占位,因为sqlSessionFactoryBeanName是字符串类型

2. 基于上述解释,我不能理解为啥:SqlSessionFactoryBean中也有类对象的属性:dataSource,dataSource会自动注入id为dataSource的bean,此时配置文件就已经加载了???它为啥不报错可以加载配置文件???

 

  • 写回答

3条回答 默认 最新

  • 关注

    配置文件应该是最先运行的吧,数据库连接要注入这些对象呢

    评论

报告相同问题?

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路