在Java Web应用中获取Spring管理的Bean的方法
前段时间在项目中遇到了这样一种问题:需要在JSP中访问后台由Spring管理的业务类代码,而这些业务类内部又涉及到了其它若干类的注入,如jdbc的service。
首先想到的是使用WebApplicationContext,即在jsp页面中以servletContext为参数,调用WebApplicationContextUtils工具的getWebApplicationContext或getRequiredWebApplicationContext方法:
于是,我们只需要(在jsp页面)中引用SpringContextHolder,就可以轻松获取Spring管理的bean了:
ReportFunctions reportF =SpringContextHolder.getBean(ReportFunctions.class);
不过话说回来,提醒大家要注意的是,虽然jsp页面可以很方便地引用后台的所有业务代码,jsp页面应该主要用于展示层,而不应该混入过多的控制层代码。