代码如下:
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 会造成什么样的麻烦么?
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 会造成什么样的麻烦么?
也许是因为对象引用不到了,变成null
static在于它是静态类变量,只要类被第一次载入以后,就一直存活着,而不用static,只要某个实例不存在了,那这个变量也不存在tomcat中的DataSource不是Static的,如果是static,理论上来说那就只能存在一个DataSource了,就不符合他连接池的说法了,