spring加载属性文件影响SqlSessionFactoryBean的bean和MapperScannerConfigurerbean扫描器自动注入问题

一、不使用.properties属性配置文件

不使用.properties属性配置文件时MapperScannerConfigurer的name和SqlSessionFactoryBean的bean标签的id相同可以实现自动注入,MapperScannerConfigurer的第二个property可以不用配置


	
	
	
	


//下面标签可以自动注入,不需要配置
    
    



    
    //ref的值和SqlSessionFactoryBean的bean标签的ID相同,可以实现自动注入,可以配置下面的标签
    

二、使用.properties属性配置文件

1、当加入标签后,MapperScannerConfigurer不能使用自动注入的方式

2、SqlSessionFactoryBean的bean的id名不能为sqlSessionFactory,也就是不可以和MapperScannerConfigurer的bean标签的property属性的name相同

3、MapperScannerConfigurer的bean标签的下面property的name不能用SqlSessionFactory

4、只能使用sqlSessionFactoryBeanName才会配置生效,且不能和SqlSessionFactoryBean的bean标签的id相同




	
	
	
	



//下面标签可以自动注入,不需要配置
    
    



	
        //这个标签必须配置,不能实现自动注入
	

三、产生问题的原因(以下观点为猜测,目前我没能力证实,请谨慎观看)

使用自动注入时,会优先实例化的自动注入的类,当DriverManagerDataSource注册完成之后,.properties属性文件还没有加载,所以${jdbc.username}这样的标签此时不生效。

你可能感兴趣的:(spring)