请选择 进入手机版 | 继续访问电脑版

WEB应用是如何运用Spring的?#Spring的IOC容器如何在WEB中创建和使用的?

[复制链接]
期待幸福 发表于 2021-1-2 19:44:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、Spring的IOC容器如安在WEB中创建?

①非WEB应用在main方法中直接创建 IOC 容器
②WEB应用中,IOC应该在服务器加载时就创建 IOC 容器
所以我们需要用到ServletContextListener监听器类,在初始化服务器方法 contextInitialized(ServletContextEvent sce) 中创建 IOC 容器
③在WEB应用的其他组件中如何来访问 IOC 容器呢?
我们只需要在监听器中将创建好的IOC容器放入到 ServletContext 域对象中即可
这些想法,Spring已经帮我们做好了,我们只需这样利用,如下:
①、导入jar包 spring-web-4.0.0.RELEASE.jar ,Spring将以上利用实现在jar包中
②、在web.xml文件中设置 ContextLoaderListener 监听器

这个监听器实现了 ServletContextListener 接口,当服务器启动时,创建ServletContext域对象,会执行该监听器中的contextInitialized方法

进入 initWebApplicationContext方法中,发现它创建好 IOC 容器后存放到servletContext域对象中

③、那么它是如何获取到Spring的设置文件的呢?
在web.xml中设置context-param

 这样设置了之后呢,就会在 IOC 创建后会根据 Spring 设置文件所设置

 ServletContext会获取web.xml中的 param-name为 contextConfigLocation 的值,即applicationContext.xml设置文件
IOC容器就这样创建完毕了
二、Spring的IOC容器如安在WEB中获取?


查察源码:

WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE就是IOC容器对象在ServletContext域中的Key

来源:https://blog.csdn.net/qq_45384304/article/details/112059614
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )