当SpringBoot以war包运行时,获取applicationContext的方法
最近接手别人的一个Spring Boot后台接口的项目的时候,发现其业务逻辑层,也就是与数据库连接的那一块代码没用使用现在主流的MyBatis等,用的还是较为原始的JdbcTemplate,其中某接口的业务逻辑层如下。
public boolean update_addbind(BindBean bb){
boolean flag = true;
String sqlTxt =
"INSERT INTO dbind (dev,dphone,dname) VALUE ('"
+bb.getDev()+"' , '"
+bb.getDphone()+"' , '"
+bb.getDname()+"' ) ";
JdbcTemplate jdbcTemplate =
(JdbcTemplate) SpringUtil.applicationContext.getBean("jdbcTemplate");
int i = 0;
i = jdbcTemplate.update(sqlTxt);

本文介绍了在SpringBoot项目打包为war包后,由于无法获取applicationContext导致数据库连接失败的问题。作者通过分析启动类,发现在war包模式下configure方法不调用setApplicationContext。最终解决方案是在新的启动类中重写onStartUp方法,调用setApplicationContext,从而成功获取上下文并确保接口正常运行。
最低0.47元/天 解锁文章
1239

被折叠的 条评论
为什么被折叠?



