spring 注入 redis.clients.jedis.JedisPool 异常

    一,异常信息:                 

             Superclass has no null constructors but no arguments were given

    二,版本信息:

             springframework:3.2.2
             jedis:2.3

    三,spring配置信息:



	 
	   
	  
	 


          
          
          

        1,异常原因分析:

               具体分析请看这儿

               按照上面分析:对于没有实现接口的类,spring使用CGLIB来实现代理。目标类必须要有默认的无参构造函数。JedisPool类,确实没有无参的构造函数。为了解决这个问题,我包装了JedisPool类,新建JedisPoolWriper类:

public class JedisPoolWriper{

	private static Logger logger= Logger.getLogger(JedisPoolWriper.class);
	private  JedisPool jedisPool = null;
	
    public JedisPoolWriper(final JedisPoolConfig poolConfig,final String host,final int port){
    	try{
			jedisPool = new JedisPool(poolConfig,host,port);
		}catch(Exception e){
			logger.error("Jedis Pool init failed:", e);
		}
	}
}

              这个新生成的包装类,同样没有默认的无参构造函数,spring成功构造注入。对于这个问题,没有进一步跟踪。不知道是不是JedisPool继承了抽象类Pool影响的,如若被哪位兄弟解决了,做个好事儿,告知我呗。

             包装类注入:


	 
	
	 







你可能感兴趣的:(spring)