快捷导航

spring的getbean方法和直接new一个对象,有什么差别?

程序的目的是访问数据库进行数据查询操作,使用的是spring和c3p0连接池,spring配置了一个springContext的静态方法可以直接使用getbean来获得相应对象,这里其他代码略去,只保留问题相关的代码如下://调用数据库连接//JDBCConnjdbcConn=(JDBCConn)springContext.getBean("JDBCConn");-----AJDBCConnjdbcConn=newJDBCConn();------BResultSetrs=jdbcConn.jdbcconn(sourceid,sql);想请教大虾的是:方法A和方法B有什么差别?体现在哪些方面?比如在数据库连接的时候A是沿用springContext第一次创建时的对象、而B是每次都新建一个连接?或者A和B获得的对象是一样的吗?

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

也说一下自己的理解:通过调试代码,发现getbean的方式获得对象总是继承于springcontext的上下文信息,在数据库连接时如果上一次操作报错,那么getbean方式获得的对象在下次操作时依然报错;如果改为new的方式,则不存在这个问题。
进一步推测,可能是和spring的bean生命周期管理有关,默认是单例模式,在通过web方式操作数据库时应该采用request或者session方式。
以上都是推测,还是希望有大牛能够出面解惑~
积分还是采纳给楼上的同志了,毕竟回答的人不多。。。
回复

使用道具 举报

数据库不会
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP