文档章节

Spring在Web应用中使用的原理

jj_soft
 jj_soft
发布于 2016/06/04 15:24
字数 331
阅读 11
收藏 0

那Spring如何在web应用中使用
①加入Spring web应用的特定jar包spring-web-4.0.0.RELEASE.jar、spring-webmvc-4.0.0.RELEASE.jar
②添加Spring的配置文件----跟Java工程没有什么不一样
③如何实例化IOC容器
I. 如果在非 WEB 应用在 main 方法中直接创建
II 如果自web应用的话应该在 WEB 应用被服务器加载时就创建 IOC 容器
那问题又来了,我怎么知道WEB应用什么时候被服务器加载呢?
实际上在web应用都会有一个监听器专门监听web应用是否被服务器加载在 ServletContextListener
也就说我们在这个监听器的监听web应用是否被加载的方法里里实例化IOC容器是最适合的吧
也就说ServletContextListener#contextInitialized(ServletContextEvent sce) 方法中创建 IOC 容器.
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
III创建IOC容器后,Web应用的其它组件怎么取用IOC容器呢??这里放入Application=ServletContext里就可以吧,
因为这个是共享对象吖,任何用户都可以调用
ServletContext servletContext=arg0.getServletContext();
servletContext.setAttribute("applicationContext", applicationContext);
IV使用:
//1. 从 application 域对象中得到 IOC 容器的引用
ServletContext servletContext = getServletContext();
ApplicationContext ctx = (ApplicationContext) servletContext.getAttribute("applicationContext");
//2. 从 IOC 容器中得到需要的 bean
person person = ctx.getBean(person.class);
person.hello();

© 著作权归作者所有

jj_soft
粉丝 1
博文 96
码字总数 74097
作品 0
广州
程序员
私信 提问
三条路线告诉你如何掌握Spring IoC容器的核心原理

一、前言 前三篇已经从历史的角度和大家一起探讨了为什么会有Spring,Spring的两个核心概念:IoC和AOP的雏形,Spring的历史变迁和如今的生态帝国。本节的主要目的就是通过一个切入点带大家一...

Java小铺
2018/08/27
0
0
springmvc 项目完整示例03 小结

利用spring 创建一个web项目 大致原理 利用spring的ioc 原理,例子中也就是体现在了配置文件中 设置了自动扫描注解 配置了数据库信息等 一般一个项目,主要有domain,dao,service,controller这几...

noteless
2016/02/24
0
0
springmvc 项目完整示例08 前台页面以及知识点总结

至此已经基本测试成功了,我们稍作完善,让它成为一个更加完整的项目 我们现在重新规划下逻辑 两个页面 一个登录页面 一个欢迎页面 登陆页面输入账号密码,登陆成功的话,跳转登陆成功 欢迎页面 ...

noteless
2016/02/24
0
0
spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例

下面开始项目的搭建 使用 Java EE - Eclipse 新建一 Dynamic Web Project Target Runtime 选 Apache Tomcat 7.0(不要选 Apache Tomcat 6.0,7 以后才支持 Servlet 3.0)。 点击 Next > 按钮。......

noteless
2016/02/24
0
0
好程序员Java干货分享Spring框架之IOC原理

好程序员Java干货分享Spring框架之IOC原理,前言:Spring框架是我们进行企业级开发的最常用框架,本章我们将了解Spring框架,并学习Spring的IOC特性以及IOC的实现原理:注解和反射。 Spring...

好程序员IT
07/09
31
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt程序打包发布方法(使用官方提供的windeployqt工具)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/toTheUnknown/article/details/81748179 如果使用到了Qt ...

shzwork
23分钟前
4
0
MainThreadSupport

MainThreadSupport EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport 定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现. public interface ...

马湖村第九后羿
44分钟前
3
0
指定要使用的形状来代替文字的显示

控制手机键盘弹出的功能只能在ios上实现,安卓是实现不了的,所以安卓只能使用type类型来控制键盘类型,例如你要弹出数字键盘就使用type="number",如果要弹出电话键盘就使用type="tel",但这...

前端老手
54分钟前
6
0
总结:Raft协议

一、Raft协议是什么? 分布式一致性算法。即解决分布式系统中各个副本数据一致性问题。 二、Raft的日志广播过程 发送日志到所有Followers(Raft中将非Leader节点称为Follower)。 Followers收...

浮躁的码农
今天
7
0
Flask-admin Model View字段介绍

Model View字段介绍 can_create = True 是否可以创建can_edit = True 是否可以编辑can_delete = True 是否可以删除list_template = 'admin/model/list.html' 修改显......

dillonxiao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部