前景引入:
前端部门组件是存在jar包里面的源码,无法修改调用后端链接,由于后端架构升级,导致前端调用的接口无法满足,后端也是源码无法修改。那么怎么才能让前端的写死的请求重新定位到我们自己的业务类以便来修改对应的业务。
解决办法(使用BeanPostProcessor后置处理器):
1.通过查看代码得知原业务代码类(BusinessServlet)继承了HttpServlet,那么我们自己也新建一个类(MyServlet)去继承HttpServlet用来修改原业务逻辑。
2.写一个我们自己的后置处理器 (MyProcessor),让它实现BeanPostProcessor,通过bean名
拦截到加载进来的BusinessServlet,然后返回我们自己的MyServlet.
示例:
//自己的servlet
public class MyServlet extends HttpServlet
public class MyProcessor implements BeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if("BusinessServlet".equals(beanName)) {
MyServlet myServlet = new MyServlet();
return myServlet;
}
return bean;
}
}