spring使用context:property-placeholder载不进属性问题

环境:spring3.1.1+mybatis3.2.8+mybatis-spring1.2.3

今天整合了SpringMVC + MyBatis,发现了一个问题,在这里做个记录,各位如果遇到相同的问题,可以参考下。

 
  
  

引入文件时出现下面的错误,提示dataSource中的使用资源文件中key对应的value值没有引入进来。
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${jdbc.driver}'] with root cause
java.lang.ClassNotFoundException: ${jdbc.driver}

首先确认jdbc.properties引入的路径没有问题。其次往下看。

解决案:

1. xml 头部将 default-autowire="byName"去掉。

2. 修改SqlSessionFactory。

 
  
  
  
      
    
    
 
    
 
  
    

改成:
  
  
      
    
    
 
    
 
  
    
    
这样,dataSource中就可以正常使用.properties文件中的key-value了。 

附:完整的配置文件,这个文件是用来完成spring和mybatis的整合的xml。

spring-resources.xml
  

	
	  
      
          
    

	  
     

	  
      
          
     
    
    
      
          
      
      
          
              
              
              
  
              
              
              
              
              
  
              
          
      
    
      
      
          
        
        
     
    
     
      
        
        
    
    
      
    
    
    
	
		
		
		
		
		

		
		
		
		
		
		
		
		
	



jdbc.properties
##jdbc
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

#dbcp settings
dbcp.initialSize=5
dbcp.maxActive=20
dbcp.maxIdle=10

jdbc.dbType=mysql



感谢热心的前辈技术分享!本文如有不正,请指出。

你可能感兴趣的:(Spring)