图书介绍
深入理解OSGi Equinox原理、应用与最佳实践PDF|Epub|txt|kindle电子书版本下载
![深入理解OSGi Equinox原理、应用与最佳实践](https://www.shukui.net/cover/7/30369384.jpg)
- 周志明;谢小明 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111408871
- 出版时间:2013
- 标注页数:414页
- 文件大小:45MB
- 文件页数:427页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
深入理解OSGi Equinox原理、应用与最佳实践PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 走近OSGi2
第1章 Java模块化之路2
1.1 什么是OSGi2
1.1.1 OSGi规范的演进4
1.1.2 Java模块化规范之争7
1.2 为什么使用OSGi11
1.2.1 OSGi能让软件开发变得更容易吗12
1.2.2 OSGi能让系统变得更稳定吗13
1.2.3 OSGi能让系统运行得更快吗14
1.2.4 OSGi能支撑企业级开发吗15
1.3 本章小结16
第二部分 OSGi规范与原理18
第2章 模块层规范与原理18
2.1 OSGi规范概要18
2.2 Bundle20
2.3 描述元数据21
2.3.1 预定义标记21
2.3.2 使用可视化工具27
2.4 Bundle的组织与依赖31
2.4.1 导出和导入Package31
2.4.2 约束规则与示例38
2.4.3 校验Bundle有效性44
2.5 OSGi的类加载架构45
2.5.1 父类加载器46
2.5.2 Bundle类加载器47
2.5.3 其他类加载器49
2.5.4 类加载顺序50
2.6 定义执行环境51
2.7 本地化54
2.8 本章小结55
第3章 生命周期层规范与原理56
3.1 Bundle标识56
3.2 Bundle状态及转换57
3.2.1 安装过程59
3.2.2 解析过程61
3.2.3 启动过程62
3.2.4 更新过程63
3.2.5 停止过程64
3.2.6 卸载过程65
3.3 启动级别65
3.3.1 设置启动级别66
3.3.2 调整活动启动级别67
3.4 事件监听68
3.4.1 事件类型69
3.4.2 事件分派70
3.5 系统Bundle71
3.6 Bundle上下文72
3.7 本章小结73
第4章 服务层规范与原理74
4.1 服务74
4.2 OSGi服务示例75
4.3 服务属性80
4.3.1 属性过滤器82
4.3.2 预定义属性83
4.3.3 修改属性84
4.4 服务工厂85
4.5 服务跟踪器86
4.6 引用服务89
4.7 释放和注销服务91
4.8 服务层事件91
4.8.1 事件类型92
4.8.2 事件分派92
4.8.3 ServiceRegistration对象的提前请求93
4.9 远程服务94
4.9.1 准备远程服务环境94
4.9.2 远程服务示例96
4.9.3 远程服务属性99
4.9.4 实现分析100
4.10 服务钩子101
4.10.1 EventListenerHook101
4.10.2 FindHook101
4.10.3 ListenerHook102
4.10.4 服务钩子示例102
4.11 本章小结105
第三部分 基于Equinox的OSGi应用与实践108
第5章 Equinox启航108
5.1 建立Equinox开发环境109
5.1.1 建立运行环境109
5.1.2 建立编译及调试环境110
5.1.3 建立开发环境112
5.2 Equinox常用组件简介117
5.3 Equinox启动器119
5.4 使用代码启动Equinox124
5.5 本章小结125
第6章 Equinox基础应用与源码解析126
6.1 实践项目——Neonat论坛126
6.1.1 背景与需求126
6.1.2 模块划分127
6.1.3 基础资料模块129
6.1.4 持久化模块133
6.1.5 用户交互模块135
6.1.6 运行效果140
6.2 Equinox源码解析142
6.2.1 OSGi容器启动142
6.2.2 Bundle状态恢复147
6.2.3 解析Bundle依赖关系153
6.2.4 OSGi类加载器实现157
6.3 本章小结162
第7章 服务器端OSGi163
7.1 OSGi与Web服务器163
7.2 HTTP Service规范简介166
7.2.1 服务目标166
7.2.2 服务接口168
7.2.3 资源映射规则169
7.2.4 请求处理过程171
7.3 实践项目——Neonat论坛的Web模块171
7.3.1 准备依赖项172
7.3.2 使用HTTP Service174
7.3.3 实现Web交互功能176
7.3.4 运行效果178
7.4 HTTP Service源码解析180
7.4.1 BridgeServlet与OSGi容器启动180
7.4.2 BridgeServlet与HTTP请求委派186
7.4.3 DelegateServlet实现原理188
7.5 本章小结192
第8章 用户管理服务193
8.1 User Admin服务规范简介193
8.1.1 服务目标与基础概念193
8.1.2 验证用户身份195
8.1.3 验证用户权限196
8.1.4 UserAdmin事件197
8.2 实践项目——Neonat论坛用户管理模块198
8.2.1 需求与依赖项分析198
8.2.2 用户与用户组的实现200
8.2.3 页面权限201
8.2.4 用户登录与身份验证202
8.3 User Admin源码解析206
8.3.1 用户管理实现206
8.3.2 外部服务使用实践208
8.4 本章小结211
第9章 Preferences服务212
9.1 Preferences服务规范简介212
9.1.1 服务目标212
9.1.2 数据结构214
9.1.3 属性215
9.1.4 并发处理216
9.1.5 清理遗留数据217
9.2 实践项目——Neonat论坛持久化模块217
9.2.1 编码实现217
9.2.2 模块热切换220
9.3 Preferences源码解析222
9.3.1 数据结构实现224
9.3.2 属性存取228
9.3.3 后端存储系统229
9.4 本章小结234
第10章 声明式服务235
10.1 声明式服务规范简介236
10.1.1 服务目标236
10.1.2 定义Component236
10.1.3 Component类型237
10.1.4 Component生命周期240
10.1.5 Component属性245
10.1.6 绑定与发布服务245
10.1.7 激活与钝化方法252
10.1.8 Component配置总结254
10.2 实践项目——使用声明式服务改造Neonat论坛259
10.2.1 可视化编辑工具259
10.2.2 DS容器管理263
10.3 DS容器源码解析264
10.3.1 容器启动264
10.3.2 加载Bundle中的Component267
10.3.3 动态依赖解析272
10.4 本章小结274
第11章 Subsystems服务276
11.1 服务目标276
11.2 Subsystem格式277
11.3 Subsystem元数据278
11.3.1 SUBSYSTEM.MF标识278
11.3.2 DEPLOYMENT.MF标识281
11.4 Subsystem类型与共享策略283
11.5 组织管理Subsystem285
11.6 Subsystem部署与依赖策略289
11.7 Subsystem生命周期291
11.7.1 安装292
11.7.2 解析293
11.7.3 启动294
11.7.4 停止294
11.7.5 卸载295
11.8 本章小结295
第四部分 最佳实践298
第12章 OSGi最佳实践298
12.1 Bundle相关名称命名298
12.2 Bundle划分原则300
12.2.1 恰如其分地分配Bundle粒度300
12.2.2 分离OSGi代码300
12.2.3 分离接口和实现300
12.3 依赖关系实践301
12.3.1 依赖分析工具301
12.3.2 避免Require-Bundle303
12.3.3 最小化依赖304
12.3.4 避免循环依赖304
12.3.5 Equinox x-*依赖305
12.4 Equinox专有类加载机制306
12.4.1 Buddy Loading类加载机制306
12.4.2 ClassLoaderDelegateHook类加载机制307
12.5 Bundle生命周期实践309
12.5.1 启动309
12.5.2 停止309
12.6 服务工厂的特殊性309
12.7 处理非OSGi的JAR包311
12.8 启动顺序实践313
12.8.1 避免启动顺序依赖313
12.8.2 Start Level的使用313
12.9 Fragment Bundle实践314
12.10 保持OSGi动态性315
12.11 API Tools实践317
12.11.1 API Baselines317
12.11.2 API Tools注解319
12.11.3 API Version版本管理322
12.11.4 二进制文件不兼容322
12.12 本章小结322
第13章 Spring Dynamic Modules实践324
13.1 Spring DM入门324
13.1.1 Spring DM项目简介324
13.1.2 安装Spring DM325
13.1.3 简单的Spring DM示例326
13.1.4 Bundle和Spring上下文331
13.1.5 <osgi:*>命名空间333
13.2 Spring DM进阶337
13.2.1 Spring DM扩展配置337
13.2.2 Web Extender344
13.2.3 Spring DM服务约束345
13.2.4 在Spring上下文中使用BundleContext346
13.3 Spring DM企业应用346
13.3.1 规划OSGi组件347
13.3.2 在SpringDM中使用JPA348
13.3.3 事务管理353
13.3.4 OSGi企业规范中的JPA358
13.4 Spring DM和Blueprint359
13.5 本章小结360
第14章 构建可测试的OSGi系统361
14.1 单元测试的必要性362
14.2 单元测试的重要性363
14.3 可测试代码的特征364
14.4 OSGi单元测试365
14.4.1 如何组织测试代码366
14.4.2 如何进行OSGi单元测试367
14.5 OSGi集成测试373
14.5.1 Eclipse JUnit Plug-in Test374
14.5.2 Spring DM Test379
14.5.3 Pax Exam383
14.6 本章小结384
附录A Java类加载器简介385
附录B Equinox控制台命令392
附录C OSGi子规范目录397
附录D OSGi相关项目399
附录E Equinox启动配置参数401