androidpn学习笔记:服务端启动过程
来源:互联网 发布:异能事务所网络电影 编辑:程序博客网 时间:2024/05/18 15:29
简单地理一下:androidpn部署在tomcat,用到spring框架,那就从web.xml引导文件开始
1.web.xml里面加入spring框架的代码:
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
这是告诉tomcat,启动的时候(load-on-startup)的时候去执行org.springframework.web.servlet.DispatcherServlet,这个类读取dispatcher-servlet.xml文件,dispatcher-servlet.xml文件用来配置web收到请求时要映射到指定处理类。web端就这么多,点哪里会执行哪个类,这些都在dispatcher-servlet.xml文件里看得出。
2.开启5222侦听的启动过程也用到spring:
首先要知道的是XmppServer,SessionManager等等一些类都是单实例,就是项目中都是用如XmppServer.getInstance()的形式来实例化
2.1 main()开始初始化一个NotificationManager,NotificationManager的构造中初始化了单实例SessionManager
2.2 SessionManager初始化单实例XmppServer
2.3 Xmppserver实例化的时候调用start(),这个意图就很明显了。
2.4 start()里关键的一步是
context = new ClassPathXmlApplicationContext("spring-config.xml");这就完成了hibernate/mina/的初始化。
为什么明明只读了下配置就完成了初始化?spring-config.xml里的bean没有人去调用呢??这里特别要知道一点:
1.bean的作用域,默认的情况之下,spring容器的bean的作用域是单实例的,也就是说当我们从容器中得到的bean实例是同一个,注意默认情况下的bean是在spring容器实例化的时候就进行实例化的
2.可以使用scope标签设置bean的作用域为原型,也就是说每次得到的bean是不同的对象实例。scope="prototype"。当是原型时bean的实例化是在getbean的时候进行实例化的。也可以在xml中配置bean的加载时机为延迟。
- androidpn学习笔记:服务端启动过程
- androidpn的学习研究(二)androidpn-server服务端启动过程的理解分析
- TMS320F28335学习笔记-启动过程 .
- TMS320F28335学习笔记-启动过程
- TMS320F28335学习笔记-启动过程
- TMS320F28335学习笔记-启动过程
- TMS320F28335学习笔记-启动过程
- TMS320F28335学习笔记-启动过程
- TMS320F28335学习笔记-启动过程
- Dalvik学习笔记--启动过程
- STM32F4XX启动过程学习笔记
- TMS320F28335学习笔记-启动过程
- androidpn学习笔记.与客户端的通信
- Androidpn学习笔记-客户端代码分析
- Linux学习笔记(一)启动过程
- linux SMP 启动过程学习笔记
- 操作系统学习笔记(3)--内核启动过程
- ORACLE学习笔记1_启动过程
- Java小工具
- 如何给vmware增加新硬盘
- php安全模式详细介绍
- 高效率优化Oracle SQL语句
- ubuntu解决firefox下fcitx不能用
- androidpn学习笔记:服务端启动过程
- 第八周-关于圆的计算
- Android中View转换为Bitmap及getDrawingCache=null的解决方法
- sscanf与正则表达式
- 恐慌
- HTML颜色代码表
- IT技术文章示例(附源码)
- 异常/深入java.lang.Throwable
- PageRank 入门