深入理解OSGi:Equinox原理、应用与最佳实践

深入理解OSGi:Equinox原理、应用与最佳实践
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2013-02
版次: 1
ISBN: 9787111408871
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 414页
  •   《深入理解OSGi:Equinox原理、应用与最佳实践》是原创Java技术图书领域继《深入理解Java虚拟机》后的又一实力之作,也是全球首本基于最新OSGiR5.0规范的著作。理论方面,既全面解读了OSGi规范,深刻揭示了OSGi原理,详细讲解了OSGi服务,又系统地介绍了Equinox框架的使用方法,并通过源码分析了该框架的工作机制;实践方面,不仅包含一些典型的案例,还总结了大量的最佳实践,极具实践指导意义。
      《深入理解OSGi:Equinox原理、应用与最佳实践》共14章,分4个部分。第一部分(第1章):走近OSGi,主要介绍了什么是OSGi以及为什么要使用OSGi。第二部分(第2~4章):OSGi规范与原理,对最新的OSGiR5.0中的核心规范进行了全面的解读,首先讲解了OSGi模块的建立、描述、依赖关系的处理,然后讲解了Bundle的启动原理和调度管理,最后讲解了与本地及远程服务相关的内容。第三部分:OSGi服务与Equinox应用实践(第5~11章),不仅详细讲解了OSGi服务纲要规范和企业级规范中最常用的几个子规范和服务的技术细节,还通过一个基于Equinox的BBS案例演示了Equinox的使用方法,最重要的是还通过源码分析了Equinox关键功能的实现机制和原理。第四部分:最佳实践(第12~14章),总结了大量关于OSGi的最佳实践,包括从Bundle如何命名、模块划分、依赖关系处理到保持OSGi动态性、管理程序启动顺序、使用API基线管理模块版本等各方面的实践技巧,此外还介绍了SpringDM的原理以及如何在OSGi环节中进行程序测试。 周志明,资深Java技术专家,对JavaEE企业级应用开发、OSGi、Java虚拟机和工作流等都有深入的研究,并在大量的实践中积累了丰富的经验。尤其精通Java虚拟机,撰写了大量与JVM相关的经典文章,被各大技术社区争相转载,是ITeye等技术社区公认的Java虚拟机方面的领袖人物之一,著有经典著作《深入理解Java虚拟机:JVM高级特性与最佳实践》(2年内重印十数次,获得业界多个图书奖项),广获读者好评。现任远光软件股份有限公司平台开发部经理兼平台架构师,先后参与过国家电网、南方电网等多个国家级大型ERP项目的平台架构工作,对软件系统架构也有深刻的认识和体会。 谢小明,资深Java技术专家,具有丰富的JavaEE企业级应用开发开发经验,对OSGi、Spring、Hibernate等技术和框架有比较深入的研究和认识。喜欢钻研运行与JVM之上的其他语言,如Scala和Clojure等。现任远光软件股份有限公司平台开发部平台架构师,先后参加与过国家电网、南方电网等多个国家级大型ERP项目的平台架构工作。 前言
    第一部分走近OSGi
    第1章Java模块化之路
    1.1什么是OSGi
    1.1.1OSGi规范的演进
    1.1.2Java模块化规范之争
    1.2为什么使用OSGi
    1.2.1OSGi能让软件开发变得更容易吗
    1.2.2OSGi能让系统变得更稳定吗
    1.2.3OSGi能让系统运行得更快吗
    1.2.4OSGi能支撑企业级开发吗
    1.3本章小结

    第二部分OSGi规范与原理
    第2章模块层规范与原理
    2.1OSGi规范概要
    2.2Bundle
    2.3描述元数据
    2.3.1预定义标记
    2.3.2使用可视化工具
    2.4Bundle的组织与依赖
    2.4.1导出和导入Package
    2.4.2约束规则与示例
    2.4.3校验Bundle有效性
    2.5OSGi的类加载架构
    2.5.1父类加载器
    2.5.2Bundle类加载器
    2.5.3其他类加载器
    2.5.4类加载顺序
    2.6定义执行环境
    2.7本地化
    2.8本章小结
    第3章生命周期层规范与原理
    3.1Bundle标识
    3.2Bundle状态及转换
    3.2.1安装过程
    3.2.2解析过程
    3.2.3启动过程
    3.2.4更新过程
    3.2.5停止过程
    3.2.6卸载过程
    3.3启动级别
    3.3.1设置启动级别
    3.3.2调整活动启动级别
    3.4事件监听
    3.4.1事件类型
    3.4.2事件分派
    3.5系统Bundle
    3.6Bundle上下文
    3.7本章小结
    第4章服务层规范与原理
    4.1服务
    4.2OSGi服务示例
    4.3服务属性
    4.3.1属性过滤器
    4.3.2预定义属性
    4.3.3修改属性
    4.4服务工厂
    4.5服务跟踪器
    4.6引用服务
    4.7释放和注销服务
    4.8服务层事件
    4.8.1事件类型
    4.8.2事件分派
    4.8.3ServiceRegistration对象的提前请求
    4.9远程服务
    4.9.1准备远程服务环境
    4.9.2远程服务示例
    4.9.3远程服务属性
    4.9.4实现分析
    4.10服务钩子
    4.10.1EventListenerHook
    4.10.2FindHook
    4.10.3ListenerHook
    4.10.4服务钩子示例
    4.11本章小结

    第三部分基于Equinox的OSGi应用与实践
    第5章Equinox启航
    5.1建立Equinox开发环境
    5.1.1建立运行环境
    5.1.2建立编译及调试环境
    5.1.3建立开发环境
    5.2Equinox常用组件简介
    5.3Equinox启动器
    5.4使用代码启动Equinox
    5.5本章小结
    第6章Equinox基础应用与源码解析
    6.1实践项目-Neonat论坛
    6.1.1背景与需求
    6.1.2模块划分
    6.1.3基础资料模块
    6.1.4持久化模块
    6.1.5用户交互模块
    6.1.6运行效果
    6.2Equinox源码解析
    6.2.1OSGi容器启动
    6.2.2Bundle状态恢复
    6.2.3解析Bundle依赖关系
    6.2.4OSGi类加载器实现
    6.3本章小结
    第7章服务器端OSGi
    7.1OSGi与Web服务器
    7.2HTTPService规范简介
    7.2.1服务目标
    7.2.2服务接口
    7.2.3资源映射规则
    7.2.4请求处理过程
    7.3实践项目-Neonat论坛的Web模块
    7.3.1准备依赖项
    7.3.2使用HTTPService
    7.3.3实现Web交互功能
    7.3.4运行效果
    7.4HTTPService源码解析
    7.4.1BridgeServlet与OSGi容器启动
    7.4.2BridgeServlet与HTTP请求委派
    7.4.3DelegateServlet实现原理
    7.5本章小结
    第8章用户管理服务
    8.1UserAdmin服务规范简介
    8.1.1服务目标与基础概念
    8.1.2验证用户身份
    8.1.3验证用户权限
    8.1.4UserAdmin事件
    8.2实践项目-Neonat论坛用户管理模块
    8.2.1需求与依赖项分析
    8.2.2用户与用户组的实现
    8.2.3页面权限
    8.2.4用户登录与身份验证
    8.3UserAdmin源码解析
    8.3.1用户管理实现
    8.3.2外部服务使用实践
    8.4本章小结
    第9章Preferences服务
    9.1Preferences服务规范简介
    9.1.1服务目标
    9.1.2数据结构
    9.1.3属性
    9.1.4并发处理
    9.1.5清理遗留数据
    9.2实践项目-Neonat论坛持久化模块
    9.2.1编码实现
    9.2.2模块热切换
    9.3Preferences源码解析
    9.3.1数据结构实现
    9.3.2属性存取
    9.3.3后端存储系统
    9.4本章小结
    第10章声明式服务
    10.1声明式服务规范简介
    10.1.1服务目标
    10.1.2定义Component
    10.1.3Component类型
    10.1.4Component生命周期
    10.1.5Component属性
    10.1.6绑定与发布服务
    10.1.7激活与钝化方法
    10.1.8Component配置总结
    10.2实践项目-使用声明式服务改造Neonat论坛
    10.2.1可视化编辑工具
    10.2.2DS容器管理
    10.3DS容器源码解析
    10.3.1容器启动
    10.3.2加载Bundle中的Component
    10.3.3动态依赖解析
    10.4本章小结
    第11章Subsystems服务
    11.1服务目标
    11.2Subsystem格式
    11.3Subsystem元数据
    11.3.1SUBSYSTEM.MF标识
    11.3.2DEPLOYMENT.MF标识
    11.4Subsystem类型与共享策略
    11.5组织管理Subsystem
    11.6Subsystem部署与依赖策略
    11.7Subsystem生命周期
    11.7.1安装
    11.7.2解析
    11.7.3启动
    11.7.4停止
    11.7.5卸载
    11.8本章小结

    第四部分最佳实践
    第12章OSGi最佳实践
    12.1Bundle相关名称命名
    12.2Bundle划分原则
    12.2.1恰如其分地分配Bundle粒度
    12.2.2分离OSGi代码
    12.2.3分离接口和实现
    12.3依赖关系实践
    12.3.1依赖分析工具
    12.3.2避免Require-Bundle
    12.3.3最小化依赖
    12.3.4避免循环依赖
    12.3.5Equinoxx-*依赖
    12.4Equinox专有类加载机制
    12.4.1BuddyLoading类加载机制
    12.4.2ClassLoaderDelegateHook类加载机制
    12.5Bundle生命周期实践
    12.5.1启动
    12.5.2停止
    12.6服务工厂的特殊性
    12.7处理非OSGi的JAR包
    12.8启动顺序实践
    12.8.1避免启动顺序依赖
    12.8.2StartLevel的使用
    12.9FragmentBundle实践
    12.10保持OSGi动态性
    12.11APITools实践
    12.11.1APIBaselines
    12.11.2APITools注解
    12.11.3APIVersion版本管理
    12.11.4二进制文件不兼容
    12.12本章小结
    第13章SpringDynamicModules实践
    13.1SpringDM入门
    13.1.1SpringDM项目简介
    13.1.2安装SpringDM
    13.1.3简单的SpringDM示例
    13.1.4Bundle和Spring上下文
    13.1.5命名空间
    13.2SpringDM进阶
    13.2.1SpringDM扩展配置
    13.2.2WebExtender
    13.2.3SpringDM服务约束
    13.2.4在Spring上下文中使用BundleContext
    13.3SpringDM企业应用
    13.3.1规划OSGi组件
    13.3.2在SpringDM中使用JPA
    13.3.3事务管理
    13.3.4OSGi企业规范中的JPA
    13.4SpringDM和Blueprint
    13.5本章小结
    第14章构建可测试的OSGi系统
    14.1单元测试的必要性
    14.2单元测试的重要性
    14.3可测试代码的特征
    14.4OSGi单元测试
    14.4.1如何组织测试代码
    14.4.2如何进行OSGi单元测试
    14.5OSGi集成测试
    14.5.1EclipseJUnitPlug-inTest
    14.5.2SpringDMTest
    14.5.3PaxExam
    14.6本章小结

    附录AJava类加载器简介
    附录BEquinox控制台命令
    附录COSGi子规范目录
    附录DOSGi相关项目
    附录EEquinox启动配置参数
  • 内容简介:
      《深入理解OSGi:Equinox原理、应用与最佳实践》是原创Java技术图书领域继《深入理解Java虚拟机》后的又一实力之作,也是全球首本基于最新OSGiR5.0规范的著作。理论方面,既全面解读了OSGi规范,深刻揭示了OSGi原理,详细讲解了OSGi服务,又系统地介绍了Equinox框架的使用方法,并通过源码分析了该框架的工作机制;实践方面,不仅包含一些典型的案例,还总结了大量的最佳实践,极具实践指导意义。
      《深入理解OSGi:Equinox原理、应用与最佳实践》共14章,分4个部分。第一部分(第1章):走近OSGi,主要介绍了什么是OSGi以及为什么要使用OSGi。第二部分(第2~4章):OSGi规范与原理,对最新的OSGiR5.0中的核心规范进行了全面的解读,首先讲解了OSGi模块的建立、描述、依赖关系的处理,然后讲解了Bundle的启动原理和调度管理,最后讲解了与本地及远程服务相关的内容。第三部分:OSGi服务与Equinox应用实践(第5~11章),不仅详细讲解了OSGi服务纲要规范和企业级规范中最常用的几个子规范和服务的技术细节,还通过一个基于Equinox的BBS案例演示了Equinox的使用方法,最重要的是还通过源码分析了Equinox关键功能的实现机制和原理。第四部分:最佳实践(第12~14章),总结了大量关于OSGi的最佳实践,包括从Bundle如何命名、模块划分、依赖关系处理到保持OSGi动态性、管理程序启动顺序、使用API基线管理模块版本等各方面的实践技巧,此外还介绍了SpringDM的原理以及如何在OSGi环节中进行程序测试。
  • 作者简介:
    周志明,资深Java技术专家,对JavaEE企业级应用开发、OSGi、Java虚拟机和工作流等都有深入的研究,并在大量的实践中积累了丰富的经验。尤其精通Java虚拟机,撰写了大量与JVM相关的经典文章,被各大技术社区争相转载,是ITeye等技术社区公认的Java虚拟机方面的领袖人物之一,著有经典著作《深入理解Java虚拟机:JVM高级特性与最佳实践》(2年内重印十数次,获得业界多个图书奖项),广获读者好评。现任远光软件股份有限公司平台开发部经理兼平台架构师,先后参与过国家电网、南方电网等多个国家级大型ERP项目的平台架构工作,对软件系统架构也有深刻的认识和体会。 谢小明,资深Java技术专家,具有丰富的JavaEE企业级应用开发开发经验,对OSGi、Spring、Hibernate等技术和框架有比较深入的研究和认识。喜欢钻研运行与JVM之上的其他语言,如Scala和Clojure等。现任远光软件股份有限公司平台开发部平台架构师,先后参加与过国家电网、南方电网等多个国家级大型ERP项目的平台架构工作。
  • 目录:
    前言
    第一部分走近OSGi
    第1章Java模块化之路
    1.1什么是OSGi
    1.1.1OSGi规范的演进
    1.1.2Java模块化规范之争
    1.2为什么使用OSGi
    1.2.1OSGi能让软件开发变得更容易吗
    1.2.2OSGi能让系统变得更稳定吗
    1.2.3OSGi能让系统运行得更快吗
    1.2.4OSGi能支撑企业级开发吗
    1.3本章小结

    第二部分OSGi规范与原理
    第2章模块层规范与原理
    2.1OSGi规范概要
    2.2Bundle
    2.3描述元数据
    2.3.1预定义标记
    2.3.2使用可视化工具
    2.4Bundle的组织与依赖
    2.4.1导出和导入Package
    2.4.2约束规则与示例
    2.4.3校验Bundle有效性
    2.5OSGi的类加载架构
    2.5.1父类加载器
    2.5.2Bundle类加载器
    2.5.3其他类加载器
    2.5.4类加载顺序
    2.6定义执行环境
    2.7本地化
    2.8本章小结
    第3章生命周期层规范与原理
    3.1Bundle标识
    3.2Bundle状态及转换
    3.2.1安装过程
    3.2.2解析过程
    3.2.3启动过程
    3.2.4更新过程
    3.2.5停止过程
    3.2.6卸载过程
    3.3启动级别
    3.3.1设置启动级别
    3.3.2调整活动启动级别
    3.4事件监听
    3.4.1事件类型
    3.4.2事件分派
    3.5系统Bundle
    3.6Bundle上下文
    3.7本章小结
    第4章服务层规范与原理
    4.1服务
    4.2OSGi服务示例
    4.3服务属性
    4.3.1属性过滤器
    4.3.2预定义属性
    4.3.3修改属性
    4.4服务工厂
    4.5服务跟踪器
    4.6引用服务
    4.7释放和注销服务
    4.8服务层事件
    4.8.1事件类型
    4.8.2事件分派
    4.8.3ServiceRegistration对象的提前请求
    4.9远程服务
    4.9.1准备远程服务环境
    4.9.2远程服务示例
    4.9.3远程服务属性
    4.9.4实现分析
    4.10服务钩子
    4.10.1EventListenerHook
    4.10.2FindHook
    4.10.3ListenerHook
    4.10.4服务钩子示例
    4.11本章小结

    第三部分基于Equinox的OSGi应用与实践
    第5章Equinox启航
    5.1建立Equinox开发环境
    5.1.1建立运行环境
    5.1.2建立编译及调试环境
    5.1.3建立开发环境
    5.2Equinox常用组件简介
    5.3Equinox启动器
    5.4使用代码启动Equinox
    5.5本章小结
    第6章Equinox基础应用与源码解析
    6.1实践项目-Neonat论坛
    6.1.1背景与需求
    6.1.2模块划分
    6.1.3基础资料模块
    6.1.4持久化模块
    6.1.5用户交互模块
    6.1.6运行效果
    6.2Equinox源码解析
    6.2.1OSGi容器启动
    6.2.2Bundle状态恢复
    6.2.3解析Bundle依赖关系
    6.2.4OSGi类加载器实现
    6.3本章小结
    第7章服务器端OSGi
    7.1OSGi与Web服务器
    7.2HTTPService规范简介
    7.2.1服务目标
    7.2.2服务接口
    7.2.3资源映射规则
    7.2.4请求处理过程
    7.3实践项目-Neonat论坛的Web模块
    7.3.1准备依赖项
    7.3.2使用HTTPService
    7.3.3实现Web交互功能
    7.3.4运行效果
    7.4HTTPService源码解析
    7.4.1BridgeServlet与OSGi容器启动
    7.4.2BridgeServlet与HTTP请求委派
    7.4.3DelegateServlet实现原理
    7.5本章小结
    第8章用户管理服务
    8.1UserAdmin服务规范简介
    8.1.1服务目标与基础概念
    8.1.2验证用户身份
    8.1.3验证用户权限
    8.1.4UserAdmin事件
    8.2实践项目-Neonat论坛用户管理模块
    8.2.1需求与依赖项分析
    8.2.2用户与用户组的实现
    8.2.3页面权限
    8.2.4用户登录与身份验证
    8.3UserAdmin源码解析
    8.3.1用户管理实现
    8.3.2外部服务使用实践
    8.4本章小结
    第9章Preferences服务
    9.1Preferences服务规范简介
    9.1.1服务目标
    9.1.2数据结构
    9.1.3属性
    9.1.4并发处理
    9.1.5清理遗留数据
    9.2实践项目-Neonat论坛持久化模块
    9.2.1编码实现
    9.2.2模块热切换
    9.3Preferences源码解析
    9.3.1数据结构实现
    9.3.2属性存取
    9.3.3后端存储系统
    9.4本章小结
    第10章声明式服务
    10.1声明式服务规范简介
    10.1.1服务目标
    10.1.2定义Component
    10.1.3Component类型
    10.1.4Component生命周期
    10.1.5Component属性
    10.1.6绑定与发布服务
    10.1.7激活与钝化方法
    10.1.8Component配置总结
    10.2实践项目-使用声明式服务改造Neonat论坛
    10.2.1可视化编辑工具
    10.2.2DS容器管理
    10.3DS容器源码解析
    10.3.1容器启动
    10.3.2加载Bundle中的Component
    10.3.3动态依赖解析
    10.4本章小结
    第11章Subsystems服务
    11.1服务目标
    11.2Subsystem格式
    11.3Subsystem元数据
    11.3.1SUBSYSTEM.MF标识
    11.3.2DEPLOYMENT.MF标识
    11.4Subsystem类型与共享策略
    11.5组织管理Subsystem
    11.6Subsystem部署与依赖策略
    11.7Subsystem生命周期
    11.7.1安装
    11.7.2解析
    11.7.3启动
    11.7.4停止
    11.7.5卸载
    11.8本章小结

    第四部分最佳实践
    第12章OSGi最佳实践
    12.1Bundle相关名称命名
    12.2Bundle划分原则
    12.2.1恰如其分地分配Bundle粒度
    12.2.2分离OSGi代码
    12.2.3分离接口和实现
    12.3依赖关系实践
    12.3.1依赖分析工具
    12.3.2避免Require-Bundle
    12.3.3最小化依赖
    12.3.4避免循环依赖
    12.3.5Equinoxx-*依赖
    12.4Equinox专有类加载机制
    12.4.1BuddyLoading类加载机制
    12.4.2ClassLoaderDelegateHook类加载机制
    12.5Bundle生命周期实践
    12.5.1启动
    12.5.2停止
    12.6服务工厂的特殊性
    12.7处理非OSGi的JAR包
    12.8启动顺序实践
    12.8.1避免启动顺序依赖
    12.8.2StartLevel的使用
    12.9FragmentBundle实践
    12.10保持OSGi动态性
    12.11APITools实践
    12.11.1APIBaselines
    12.11.2APITools注解
    12.11.3APIVersion版本管理
    12.11.4二进制文件不兼容
    12.12本章小结
    第13章SpringDynamicModules实践
    13.1SpringDM入门
    13.1.1SpringDM项目简介
    13.1.2安装SpringDM
    13.1.3简单的SpringDM示例
    13.1.4Bundle和Spring上下文
    13.1.5命名空间
    13.2SpringDM进阶
    13.2.1SpringDM扩展配置
    13.2.2WebExtender
    13.2.3SpringDM服务约束
    13.2.4在Spring上下文中使用BundleContext
    13.3SpringDM企业应用
    13.3.1规划OSGi组件
    13.3.2在SpringDM中使用JPA
    13.3.3事务管理
    13.3.4OSGi企业规范中的JPA
    13.4SpringDM和Blueprint
    13.5本章小结
    第14章构建可测试的OSGi系统
    14.1单元测试的必要性
    14.2单元测试的重要性
    14.3可测试代码的特征
    14.4OSGi单元测试
    14.4.1如何组织测试代码
    14.4.2如何进行OSGi单元测试
    14.5OSGi集成测试
    14.5.1EclipseJUnitPlug-inTest
    14.5.2SpringDMTest
    14.5.3PaxExam
    14.6本章小结

    附录AJava类加载器简介
    附录BEquinox控制台命令
    附录COSGi子规范目录
    附录DOSGi相关项目
    附录EEquinox启动配置参数
查看详情
12
您可能感兴趣 / 更多
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出全链路压测
吴骏龙
深入理解OSGi:Equinox原理、应用与最佳实践
深入解析Windows操作系统 (第7版)(卷2)
(美)安德里亚·阿列维(Andrea Allievi)
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解移动互联网
吴功宜 吴英 编著
深入理解OSGi:Equinox原理、应用与最佳实践
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出存储引擎 文小飞
文小飞
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解物联网 吴功宜 吴英
吴功宜 吴英
深入理解OSGi:Equinox原理、应用与最佳实践
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出:ASP.NET Core
周家安
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出Spring Boot 3.x
杨开振
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出数字经济
郭全中
深入理解OSGi:Equinox原理、应用与最佳实践
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
系列丛书 / 更多
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出全链路压测
吴骏龙
深入理解OSGi:Equinox原理、应用与最佳实践
深入解析Windows操作系统 (第7版)(卷2)
(美)安德里亚·阿列维(Andrea Allievi)
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解移动互联网
吴功宜 吴英 编著
深入理解OSGi:Equinox原理、应用与最佳实践
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出存储引擎 文小飞
文小飞
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解物联网 吴功宜 吴英
吴功宜 吴英
深入理解OSGi:Equinox原理、应用与最佳实践
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出:ASP.NET Core
周家安
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出Spring Boot 3.x
杨开振
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出数字经济
郭全中
深入理解OSGi:Equinox原理、应用与最佳实践
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
相关图书 / 更多
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出全链路压测
吴骏龙
深入理解OSGi:Equinox原理、应用与最佳实践
深入解析Windows操作系统 (第7版)(卷2)
(美)安德里亚·阿列维(Andrea Allievi)
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解移动互联网
吴功宜 吴英 编著
深入理解OSGi:Equinox原理、应用与最佳实践
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出存储引擎 文小飞
文小飞
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解物联网 吴功宜 吴英
吴功宜 吴英
深入理解OSGi:Equinox原理、应用与最佳实践
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出:ASP.NET Core
周家安
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出Spring Boot 3.x
杨开振
深入理解OSGi:Equinox原理、应用与最佳实践
深入浅出数字经济
郭全中
深入理解OSGi:Equinox原理、应用与最佳实践
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解OSGi:Equinox原理、应用与最佳实践
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍