代码如下:
private static DataSource dataSource;
public void setDataSource(DataSource dataSource) 
{
         this.dataSource = dataSource;
        
    }
                  .
                  .
                  .
public void save(){
jdbcTemplate = new JdbcTemplate(dataSource);}我之所以把dataSource定义成static是因为:
如果不定义为static 通过
dataSource 会成为null
也就是说this.dataSource = dataSource;执行后 ,在setDataSource方法中this.dataSource 已经不不是null了,但是在下面的save方法中this.dataSource 还是null请问:
在tomcat下面应用时,这种把dataSource定义成static 会造成什么样的麻烦么?

解决方案 »

  1.   

    另外 我还是想知道为什么 为什么不定义成static dataSource就传不过去呢。。
      

  2.   

    如果非要定义成static才可以用,说明是你类设计得有问题了
    也许是因为对象引用不到了,变成null
    static在于它是静态类变量,只要类被第一次载入以后,就一直存活着,而不用static,只要某个实例不存在了,那这个变量也不存在tomcat中的DataSource不是Static的,如果是static,理论上来说那就只能存在一个DataSource了,就不符合他连接池的说法了,