为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

4 回答

?
木子二月鸟

TA贡献4条经验 获得超0个赞

也说一下自己的理解:通过调试代码,发现getbean的方式获得对象总是继承于springcontext的上下文信息,在数据库连接时如果上一次操作报错,那么getbean方式获得的对象在下次操作时依然报错;如果改为new的方式,则不存在这个问题。

进一步推测,可能是和spring的bean生命周期管理有关,默认是单例模式,在通过web方式操作数据库时应该采用request或者session方式。

以上都是推测,还是希望有大牛能够出面解惑~

积分还是采纳给楼上的同志了,毕竟回答的人不多。。。

查看完整回答
反对 回复 2016-11-22
?
星鸿

TA贡献6条经验 获得超0个赞

数据库不会

查看完整回答
反对 回复 2016-11-14
  • 4 回答
  • 0 关注
  • 8033 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信