SpringBoot ApplicationContextAware拓展接口如何使用


本篇内容介绍了“SpringBootApplicationContextAware拓展接口如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ApplicationContextAware接口:首先Aware接口就知道这是springboot扩展给用户使用的,这里提供了方法setApplicationContext,参数就是传递spring容器上下文对象进来,我们可以接收这个上下文对象,我们要想知道获取spring容器上下文ApplicationContext具体有什么作用,这才是扩展接口的目的所在,获取上下文根据上下文的特性做一些事情。我们来看ApplicationContext对象的方法:来看看AbstractApplicationContext实现类的方法:这里我们可以发现 getBean()方法很眼熟,因为在最最开始学习spring时没有用spring的脚手架创建项目,我们获取bean的方法通常是classPathContextLoader扫描bean的xml文件解析组成ApplicationCOntext对象,再调用它的getBean方法获取实例bean。由此可以发现我们主要的应用途径就是使用这个getBean的方法,那么动态的注入bean我们通过很多方法就能实现,所以这里不难想到,静态方法中无法使用注入的bean的问题。其次我们来复现这个问题,大家来看如下的代码:我们发现在静态的Test方法中调用注入的bean直接报错,这里解释一下:归功于类的加载机制与加载顺序,静态属性与静态代码块最先加载(static静态优先),这里加载静态方法是没有bean实例给你用的,自然会报错。如何解决?我们可以采取Spring获取bean对象时调用getBean方法的思路,在容器加载时将spring容器的上下文进行静态存储:这里只需要关注的是静态成员变量Appli免费云主机域名cationContext的定义、赋值与验证:重写扩展接口的方法,实现静态上下文的覆盖:将获取它的方法公有修饰,便于共享:写到这里还是不明白,这么定义一个组件,将spring上下文对象静态覆盖到底有何作用?不要慌,我们来看看这个类的这个方法:我们发现上例代码中进行了查库的操作:“SpringBootApplicationContextAware拓展接口如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: ios怎么自定义滑杆效果

本篇内容介绍了“ios怎么自定义滑杆效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先让我们看看效果:主要实现的代码:在这里我们通过context的方法将图片…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/12 11:49
下一篇 06/12 11:49

相关推荐