spring中为什么实现了ApplicationContextWare这个接口就可以获取到spring的上下文
我们都知道在spring中我们的一个bean只要实现了ApplicationContextWare这个接口就可以通过覆写他的一个接口方法set进来spring的上下文,但是很少有人研究为什么就能设置进来.
要研究这个问题,就要引出spring中的另外一个知识点,那就是BeanPostProssor接口,这个接口是spring为我们提供的一个可以使程序员手动改变一个bean的产生过程的方式,spring本身也为我们提供了很多这个接口的实现类(他负责在一个bean初始化完成后回调),其中一个就是ApplicationContextAwareProssor,他是在容器初始化的时候spring自己设置进上下文中的一个实现类,这个类就负责看看你的bean有没有实现ApplicationContextWare这个接口,如果实现了,就把上下文对象设置进你的bean当中(当然,这也只是这个实现类的其中一个功能,他还会看你有没有实现其他的接口,我没记住,自己有兴趣可以去看源码),这样就实现了我们开始说的问题.
~第一次写文章,我也知道写的相当的简陋,很多人看了之后可能还是一头雾水,不知道我在说什么,后面我会整理好思路,再重新整理一下这个小知识.望见谅