来源:蜘蛛抓取(WebSpider)
时间:2012-06-07 14:30
标签:
电脑java怎么升级
Android开发关键技术之旅:Java程序员快速学习通道,完整扫描版 - 下载频道 - CSDN.NET
&&&&Android开发关键技术之旅:Java程序员快速学习通道,完整扫描版
&Android开发关键技术之旅:Java程序员快速学习通道,完整扫描版
以iPhone的发布为开端,以Android系统的全面普及为标志,新型智能手机的广泛应用宣布了新的互联网时代的到来。时至今日,看看市场上琳琅满目、满山满谷的各种品牌、各种外观、各种配置、各种功能的Android手机和设备吧,Android系统取得了巨大成功。移动互联网时代,下一个主流的开发平台和生态系统也将会围绕着这个小机器人来展开。
本书主要面对有一定基础的Java程序员,是一本程序员写给程序员的著作。本书从手机互联网应用的角度出发,探讨了使用Android开发系统来开发Android应用的相关的各种概念、技术、过程和工具,让开发者能够了解和掌握用于开发Android网络应用程序应有的知识和技能,为他们在Android平台上实现自己的开发梦想提供坚实的基础。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
移动开发下载排行
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
Android开发关键技术之旅:Java程序员快速学习通道,完整扫描版
所需积分:0
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:你的位置:
&& 详细内容
《java集成开发环境》绿色免安装版本
本资料所属分类:
更新时间:日
如不能下载,请查看
软件下载http://www.minxue.net:&java集成开发环境英文名:&netbeans for veket资源格式:&压缩包版本:&6.91多国语言(含中文)绿色免安装版本制作发行:&netbeans.org地区:& 大陆, 香港, 台湾, 美国, 日本语言:& 简体中文, 英文简介:&
软件类型:编程软件操作系统:veket应用平台:veket全系列绿色免安装,sfs文件的用法NetBeans 由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。简介 NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。NetBeans 可支持Java 2平台标准版(J2SE)应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。此外,NetBeans 最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。所有这些都为Java开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。 NetBeans是一个为软件开发者而设计的自由、开放的IDE(集成开发环境),你可以在这里获得许多需要的工具,包括建立桌面应用、企业级应用、 WEB开发和JAVA移动应用程序开发、C/C++,甚至Ruby。NetBeans可以非常方便的安装于多种操作系统平台,包括 Windows,Linux,Mac OS和Solaris等操作系统新功能 NetBeans IDE6.1版本提供了几种新功能和一些功能的增强。提供了强大的JavaScript编辑功能,支持使用Spring的WEB框架,并加强了与 MySQL的整合,使NetBeans比较方便的使用MySQL数据库,NetBeans 6.1增强了性能,启动速度提升40%。在建立一个大工程时,有较低的内存消耗和更快的响应速度!关键特性 NetBeans 6.5 是一个升级版,通过相对较短的发行周期和目标明确的特性清单来定义,在 PHP 编辑与调试、Ajax 动态网页设计和数据库工具设计等领域尤其突出。NetBeans 6.5 将以 6.1 主要发行版或更新中心中可用的特性为基础,包括 JavaScript 编辑器、Ruby & Rails 工具设计、jMaki、PHP 早期访问和 JavaScript 调试器预览。 NetBeans 6.5 将继续以核心价值为基础 —— 卓越的即开即用式体验和出色的 Java SE/EE/ME 平台特性支持。虽然此发行版并未引起重大关注,但是针对 Java SE & EE 的底层结构改进将增加最终用户系统的响应性和健壮性。 NetBeans 6.5 将解决 Project 系统领域中的一些缺陷,使其在自定义项目结构方面具有更好的灵活性。这使用户能够更加容易地将现有项目迁移到 NetBeans 中。 6.1 版将提供一组预先配置的 NetBeans 发行版,允许用户根据自己最可能用到的技术来调整下载和安装体验。随着 6.5 版中第一类 PHP 工具的出现,下载页面中将添加一个为 PHP 提供最优化 IDE 开发环境的新配置。[NetBeans 6.5]NetBeans 6.5将为 Linux(Ubuntu、Debian 等)和 OpenSolaris IPS 生成本机软件包。 NetBeans 6.5 将支持 GlassFish v2 ur2 (SJSAS91_UR2)。IDE 需要 Java SE 6 才能运行,但之前版本的 Java SE 应用程序开发仍然受支持。 除 GlassFish v2 之外,NetBeans 6.5 还绑定和支持一个限制版本的 GlassFish v3,主要针对当前以“v3 Lite”著称的 Web 层开发。由于 v3 不能取代 v2,这两个中间件都将绑定在 Web/JavaEE 和 Full 配置中。GlassFish v3 Ruby 运行库支持将绑定在 NetBeans Ruby 配置中。 UML 工具包将经历重大变更,使用开源 NetBeans Visual Library 取代闭源图像库 Tom Sawyer。此次迁移还包括少数的 UI 增强和优化。 NB 6.5 的核心平台将与之前的 6.x 版保持兼容。它支持以前声明为 _stable_ 的所有核心 API。 然而,对 Generic Scripting Framework (GSF) 和 Java Parsing API 底层结构的某些改变可要求不兼容。依赖于 6.1 版 GSF 和 Java Parsing API 工作的客户机需要升级到 NB 6.5 版。质量标准 以下指标将用于评估产品质量和准备情况: 在 IssueZilla 中打开 P1、P2 和 P3 缺陷的数量 bug 趋势,尤其是研究主要的开发里程碑 来自 NETCAT 社区的调查结果 总体目标是在“成熟”特性方面实现与之前版本相同或更好的质量水平,对新特性做出合理的 bug 限制说明。6.5 版质量标准的所有细节可以在 此处 找到。 NetBeans 发行版 以下 NetBeans 配置可以从 6.5 版下载页面获得: 配置 6.5 版的新特性 Web & Java EE 添加 JavaScript/Ajax 支持 Mobility Java SE Ruby PHP 6.5 版的新特性(FCS 版) C++ 全部(Full 配置) 添加 PHP、JavaScript/Ajax 支持 NetBeans 还可随带以下程序包(bundle): JDK Bundle Java EE 5 Tools Bundle MySQL GlassFish Bundle特性详情 优先级定义 P1-随带在发行版中,不可缺少。这些是版本发行的商业因素,应直接规划到首要议题 P2 - 忠于发行版本的(即计划的、配备的等等),但是,如果非要摒弃该特性也不一定会阻碍原定版本的发行。注:摒弃忠于发行版本的特性时千万不能掉以轻心,因为重新计划它会影响参与此特性支持和改进的每个人。 P3 -少数对当前版本“最好具备的”特性,或针对未来版本的高级开发工作,可以摒弃或延期,对 6.5 版的影响很小。 脚本 支持脚本语言有两个推动因素:Java 平台开始支持多语种并且 Web 2.0 非常依赖于脚本。NetBeans 6.5 将支持 PHP、JavaScript(客户机&服务器)、Ruby 和 Groovy 的编辑和调试。 PHP 语言和项目支持 P1 具备的特性: 完成且稳定的特性,在 PHP 6.1 Early Access 版本 中提供预览 支持 PHP 5.3 特性,在 PHP 词法分析、语法分析和索引等方面有些变化 P1 不具备的特性: 交叉重构 html、css & JavaScript PHP Framework 支持(Zend 或 CakePHP) PHP Unit Test 支持 P2: Run/Debug Configurations - 允许在浏览器中通过命令行切换运行/调试 FTP Support - 提供上传和下载功能 Ruby P2: 在索引、代码完成等方面的性能提升 UI Test Runner 134779 能够设置异常断点(可能需要在后台执行)99770 能够通过断点找到运行条件(可能需要在后台执行)100096 交互式调试控制台 107761 类型分析改进,如自动推断方法的类型,并在计算涉及调用表达式的类型时使用这些方法 额外重构 能够搜索 ruby 核心和 Gem 130366 监控 IDE 中的日志文件,并完美地显示出来 115325 与 DB 浏览器更好的梳成:从 Rails 模型转变到相应的数据库表并且能快速查看数据的行为 添加对 Warbler 的支持 Groovy P2: 在主发行版中支持 Groovy / Grails Groovy 编辑器 GSP 编辑器 与 Java 项目类型集成 Grails 项目支持 调试 重构 JavaScript / Ajax P1: JavaScript 编辑器 &TBD 特性& Ajax 组件 &TBD 特性& 库管理器 新的库封装格式,用于绑定 JavaScript 库和小部件、与现有 Library Manager 集成 JavaScript 客户机调试器 支持的浏览器 Firefox Internet Explorer 添加和删除 JavaScript 源代码中设置的断点 查看和导航 JavaScript 的调用栈 查看和导航源工件 管理调试器会话 查看局部变量 设置和删除监视点 在 IDE 中查看浏览器 DOM 查看 DOM 元素的 CSS 样式 监控 AJAX 的交互行为 针对 J2EE、Ruby、PHP 和 Groovy 项目的集成: 调试客户机会话:在 NetBeans 中运行项目并启动 J avaScript 调试会话,然后附加到客户端应用程序正在运行的默认桌面浏览器中 源映射:在项目中将 URI 标识的客户端应用程序(DOM 浏览器)与相应的源文件关联起来 核心/平台 项目 P1: 支持自定义项目结构 (TBD) P2: Ant 项目 合并 “from Scratch” 与 “with Existing Sources” 项目向导 当新版本可用时,改版的 API 共享库会包括 UI 升级共享库 利用 Maven 系统信息库和索引解决第三方库方面的问题。使用 Maven 远程系统信息库创建 NetBeans 库定义 对项目导入的改进和更准确的自由型态的自动配置是基于对所构建脚本的分析之上的 (AutomaticProjects) 评估本地处理外部项目的可行性:(NativeEclipseProjects) Maven 项目 远程系统信息库浏览,查询,管理,引导版本控制检测 平台 资源管理器+节点的性能提升 (FitnessViaLaziness) 可视化库的更改 (VisualLibrary) 树型表视图的新设计采用了 David Strupl 的 contrib/ttv 模块? 完成中止的高级选项 -- 文件识别面板 自动升级 在插件管理的安装向导 UI 中评估参照 CA 的第三方插件标识认证与相应修改的可行性 带箭头气球提示工具的轻微改变 窗口系统 在 Nimbus LF 上稳定运行 为窗口系统现有的可视化方面的配置添加新的 API - 启用/禁用DnD,浮动窗口,JFrames x jDialogs,选项卡的布局,滑动窗口开启/关闭,或者仅仅在一些方面,本地 x 交叉平台 L&F,固定窗口 其他的 快速搜索 - 主菜单、操作、模块、选项、文件、项目中的文本搜索。同 Vista OS 菜单类似,同竞争者的快速存取特征类似。(#134398 ),也请参阅 UI 和 Func 的总体说明 解释提示框中的图标徽章(#123469) - 新用户对图标徽章所标示的毫无头绪 集成终端仿真程序作为核心模块提供改进的终端处理(针对 IRB,Rails Console 等)。包含终端仿真程序代码在子命令解释程序中处理 readline-like 行为,处理彩色输出等。 Java EE/Web P2: 针对 web 项目和 Java SE 项目的 Eclipse 项目导入 Java Web 应用程序在背景中的调换 HTML/CSS/JSP 编辑中的质量改进和底层结构改变 框架 P2: Spring 框架 编辑器提示 导航 通过其他 beans 找到 beans 的使用方法 重构 Hibername 框架 HQL/SQL 编辑器/译码器 逆向项目 - POJOs 的代码生成和映像文件 重构 Hibernate 映像文件 Hibernate Annotation 支持 JPA DB Schema 的改进 -& 实体生成 Java 面向服务器框架 CRUD 的生成程序增强 生成默认样式表 对所生成的 Ajax-enabled 应用程序的选择 Post-gen 数据库修正 Facelets 支持(通过测试版UC发布) 重构改进 查找用法改进 代码填写改进 超链接支持 GlassFish v3 "Lite" 除了当前对 GlassFish v2 的支持之外: P2: 主配置中的 GlassFish v3 插件 绑定 在 Web/JavaEE & Full 配置中绑定GlassFish v3 在 NetBeans Ruby 配置中绑定GlassFish v3 Ruby 运行库 Java 调试程序 P2: UI 调试器重新设计第一阶段:调试器重新设计的长期努力是从新的调试视图(描绘了调试器“控制中心”并统一了会话时间、线程和调用栈)和 改写的多线程支持 (基于接受到的大量反馈)开始的。焦点只是放在 java 调试器,应对其他使用 API 核心的调试器影响最小(针对 6.5 版)。 平面任务 - IZ 133948 性能/架构的修复 - 留意全球环境的变化 - IZ 133682 每个调试器都能详细说明其视图的设置 — IZ 122740 GUI Builder P2: 对 Nimbus 外观感觉的支持(Java 6u10 中的新 L&F) 通过调整和修改使其能应用于设计预览 易于选择应用程序的外观感觉(基于 Swing App Framework 应用程序的项目属性) P3: 不要生成完全限定名 - IZ 7781,顶部决定的 RFE 对复制重构的支持(Swing App Framework) - IZ 130099 删除高级选项,移到新的选项 UI 中 - IZ 111785 集成 SwingX 库 在调色板中可用的可选组件 作为升级中心的一个模块 可用性的改进 JTree 的模式定制器 — IZ 75446 ... NetBeans 分析程序 P2: 为 Maven 项目添加支持 IZ 79327 各种HeapWalker 的改进 P3: 为配置 JVMTI-capable 移动设备添加支持(与 Mobility 团队的合作) 允许创建来自 Attach Wizard 的远程压缩包 - IZ 136907 Attach Wizard 的可用性改进 - IZ 79327 通过功能性合计 CPU 时间 - IZ 80495 VCS P2: 文件系统集成的性能和兼容性的修复 Mercurial 支持 - 修复并更多地要求可用性和 perf. 的改进;没有新的特性 多版本支持 - 客户机适配器升级采用 Java HL P3: Diff 的改进 - TBD列表 历史记录搜索的改进 - 针对Hg 和 SVN ClearCase 的支持 - 在 NetBeans 中通过改进 UI 帮助使用者学会如何使用 ClearCase 数据库/MySQL P1: 改进 Developer Lifecycle PHP 查询的代码片段 w/ SQL Editor 的集成 数据库连接对话框(无 JDBC 特性) SQL 编辑/执行/结果 SQL 历史 代码填写 API 元数据模式 编缉查询结果中的数据[NetBeans 6.5.1]NetBeans 6.5.1P2: 显示返回记录或者压缩行的编号 SQL 的代码片段 基于列的排序能力 设置页面大小的能力 对 Sakila 数据库的支持 把SQL Workbench 和 NB 绑定 从 NB 中调用 SQL Workbench 显示 MySQL 的执行计划 Matchbox — 一种根据您所输入的内容过滤结果的输入框 对序列或自动增量的支持 对DB Explorer API 的改进 表信息的快速查看 列信息的快速查看 Java / 编辑器技术 P1: 保存时编译, aka 后台编译 语言的底层结构 一般的语言框架(也称作 GSF)API API 的新解析 P2: Javadoc 提示批量处理 在编辑器中改进嵌入式支持 交叉多重结合嵌入式部分提供统一的 LexerInput 为嵌入式语言使用已注册的高亮显示层 安装/封装 P1: Ubuntu 的本地化封装 OpenSolaris IPS 的本地化封装 P2: 从构建的进程中下载离线页面 Windows x64 系统上 64-bit Java 的自动检测 安装程序引导 w/ JRE 针对第三方 distros 的安装程序支持 Web 服务器 P1: PHP Web 服务器 基于 Web 服务器的 REST TBD SaaS 支持 对除 Java 之外的其他语言的支持 PHP JavaScript P2: 基于 Web 服务器的 SOAP 评估和稳定 Web 服务器 API 为 Web 服务器扩展 J2EE 服务器 API Web 服务器 一部分模块依赖于 EE ,而另外的则不依赖于 EE SOAPUI 集成点 WS-I Validator 在 SOAP UI 中使用 XML 编辑器 实现新的 wsimport 特性 JCAPS 的要求 BPEL 项目中的客户机支持 简化的客户机创建 在项目定制器 (P2) 中配置 Axis 当 WSDL 或 XML Schema 出现冲突 或问题(P2)时的专用化支持 Metro RFE 使用 Metro 组中的公共 API 替换内部 Metro API 的用法 — WSDL to Java、Java to WSDL Web Service Designer WSDL 预览选项卡 基于 Web 服务器的 REST 添加 Spring 支持 查询支持 — 在 URL 允许指定一个查询条件来约束返回的查询结果数据 自动化支持 — 生成主键 高速缓冲支持 — 允许 像Web 浏览器这种客户机查询服务以决定是否需要重取数据。可以在 jsr-311 API 中使用预处理特性来完成上述任务。 重新访问生成的 PersistenceService—改进生成的 PersistenceService 以使其可以适应不同的环境并且可以支持 JTA 。另外,也需要计算出如何做才能使其作为管理服务器,这样才能在 EntityManager 和 UserTransaction 上使用代码。 SaaS 支持 为新的 YouTube API 添加支持 XML P1: 改进的 JSON 支持 P2: Lexer 迁移 实例的模式生成 重写 XML 导航器 模式感知代码完成的改进 SOA P2: 新的 XSLT 编辑器 源代码自动完成 Transformap 的可视化设计 资源引用和重用的统一 缺少目录资源管理 图标上的 WSDL、XSD、EJB 的 DnD 将创建引用,而不是拷贝 应重新设计元素选择器,以支持项目的依赖关系 针对 XML 的目录用法的转到声明或定义操作 UML 完成 UML 绘图区控件的替换 P1: 活动、类、序列、状态和用例图 设计中心 Web 报告 6.1 图导入 图性能 P2: VOC 对 JSR 223 的 UML 代码支持 C/C++ P2+: 代码完成准确性改进 零错误:没有错误的选择 "old" 样式(模板的最少使用 ) 90+ % "new" 样式模板强化项目85+ % P2: 远程开发客户机/服务器模型的 LAN 环境 Solaris(x86 或 Sparc)服务器的 Windows 客户机 Solaris(x86 或 Sparc)服务器的Solaris (x86) 客户机 个人工具链的集成模块 编译器选项 合作伙伴参与 Windows 工具链的“绑定” 封装项目 SVR4 格式 IPS (OpenSolaris) 格式 RPM 格式 Debian 格式 gdb-lite 调试器的改进 核心转储文件的调试 附加到动态库项目 实现 Run-to-Cursor 操作 调用图形(提供预览功能) 每个用户操作只有一个表视图的扩展 通过选项卡控制访问多个当前表格视图 OpenSolaris Explorer(在 CommunityOne 2008 中提供预览版本的演示) NetBeans 6.5 的兼容性改变 升级 性能提升 部分中的所有 DataLoaders 更改(请参阅 Jarda 的FitnessAgainstForgetfulness 说明) 在 Advanced 选项中删除一些 Editor Setting 条目 升级代码完成的颜色主题— 使其与 NetBeans 颜色兼容 P3: 发布项目 Solaris IPS 系统信息库 Linux Debian 系统信息库 使用准确性的地方 零错误 85+% 准确度 语法错误高亮显示 (提供预览技术) 使用 ANTLR 生成的语法分析器 + C/C++ 语法作为语言模式 依赖关系: Solaris IPS 软件包格式的最终确定 (针对个人工具链)合作伙伴的参与 Mobility P2: UEI 2.0 设计和实现 (CDC & MIDP 3.0) 对 WTK 3.0 的支持 对 Acadia (Java FX Mobile) 的支持 对 Blueray/IPTV(基于 WTK 3.0)的入口支持 对自定义组件的 API 支持 Rich UI 组件的新设置 基于数据绑定库的自定义组件 基于源代码而不是编译二进制代码 (CR, Sprint) 的自定义组件 编辑器改进,权限提示 (CR, Sprint) JSR 271 实现 — Mobile Information Device Profile 3.0(移动信息设备配置文件 3.0) 利用率跟踪 P2: 在 IDE 中记录用户访问具体操作和特征 汇总、预览和传输统计分析结果匿名使用数据的机制 用户必须明确指定 'opt-in',以启用利用率跟踪触发器和报表 性能提升 P1: P2: 重写 DataLoader 的注册和使用文件 — 提高文件识别速度,以 mime 类型为基础 针对企业的可扩展调试 — 避免多数调试器类型(我们大约有 10 种调试器)使用自己的侦听程序监视 IDE 中的一切变更,实现有效的注册和侦听。 修复版本文件系统的性能 — 使得改版文件系统的 UI 性能比得上本地文件系统(UI 响应最多延迟 30%) 在所有项目打开后开始扫描项目 classpath — 项目将快速打开,很快达到指定 classpath (例如跳转到到 Type 对话框),避免在项目打开时修改classpath 所生成的大量事件,更简单更好地定义打开项目的进程,减少潜在工作量。 导航工作和更新响应扫描 - 至少在编辑器中跳转到 Type 对话框和 Ctrl+单击选项。 保存时的编译 — 每次保存一个文件时 java 的编译文件都会增加;应该加速项目或文件的运行时间(例如测试变化)参阅上述的 Java & 编辑器技术 在启动时加载各类白名单 — 通过新的测试、补充黑名单(已实现)获取启动过程中的控制权;全面监控变更 确保关闭的项目 (P2) 和关闭的文件视图 (P3) 不会泄露,这是提交验证的一部分。 依赖关系 应用服务器:GlassFish 插件 SOA/JBI:在 NB65 中建立 SOA 工具的重要部分 转子:Sun中国技术社区NetBeans 平台 NetBeans 平台是一种可重复使用的框架用于简化其他桌面应用程式的开发。当基于NetBeans 平台的应用被执行,平台主要类别的main方法便会被执行。可用的模组会被放置在存储器中,并且开始执行任务。通常模组会只在被需要时,其代码才会被装进记忆。 应用程式能动态安装模组。任何应用程式能包括更新模组,允许用户申请下载的应用程式升级和加入新功能。这样安装,升级以及新发并行不必迫使用户每次再下载整个应用程式。 整个 Netbeans 平台提供对桌面应用程式常用的服务,允许开发者集中于仅限于他的应用程式的逻辑设计。其中 NetBeans 平台的主要特征是: * 用户界面管理 User interface management (例如 选单和工具条) * 用户设定管理 User settings management * 存储管理 Storage management(保留和装任何种类数据) * 视窗管理 Window management * 术士框架 Wizard framework(一步一步支援对话框)[安装测试]★已经过安装测试,测试系统为lucky8k-veket-3.1。杀毒提示:已通过安全检测.安全检测软件:avast antivirus1.30
自带站内搜索End-->
相关学习资料<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您访问的地址不存在 404 Not Found - ITeye技术网站
您访问的地址不存在,请确认您输入的URL地址|||||| 更多
比特客户端
我们也在这里:
浅谈如何构建Java Web快速开发框架
关键字:Java
我在我们应该怎样看待框架 中,实现了一个JDBC版的Base类,和一个Hibernate版的Base类,取模仿RoR的ActiveRecord,这样我们编程的时候,只需要实现一个Base的子类,就可以完成CRUD了。
我的毕设题目是与Rest ,更准确说是与ROA有关的,另外就是在看Spring MVC对于惯例优先 (Convention over Configuration,CoC)原则的实现。
Web架构的四个元素
无论是Rails还是Spring MVC都是MVC实现,因此我的研究也肯定是基于MVC模式的。那么分别来关注M,V和C,另外就是将url和C进行映射的Router(或者说是Struts里的映射文件)。
首先是M,我不想自己编M,那就自动生成,怎么才能自动生成呢,根据自动生成,而且我生成要是一个ActiveRecord模式的类。所以不是像过去弄个HashMap就能混过去了。之后就是看了ASM3.1和ClassLoader的知识,发现这是可以实现的。如下:
先整个测试:
@Test publicvoidgerneratorClass(){ try{ Mapfields=newHashMap();fields.put("id",1l);fields.put("name","wanxing");EntityGernerator.generateEntity("Student",fields);EntityGernerator.invoke("add");}catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace();} }public void gerneratorClass() { try { Map fields=new HashMap();fields.put("id", 1l);fields.put("name", "wanxing");EntityGernerator.generateEntity("Student",fields );EntityGernerator.invoke("add");} catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace();}这块的实现我想了一下,EntityGernerator的generateEntity方法到底只是创建一个class还是连同对象,而其还有invoke方法,这看上去不太对,嗯,它应该是只生成class就结束使命了。不过以后再迭代吧。
实现的代码很简单,就是利用了ASM3.1,就搞定了。有两点需要声明:
1、可以按需要设定生成类的父类
2、只能创建类属性,不能创建方法,因为方法的实现太复杂,用JVM指令写会死人,不如转向动态语言了,而且它继承了有用的父类,就已经完成了自己的使命了。
V和C用通用的,就像用通用DAO一样。关于V有个特别之处,那就是FrontController,它来调配各个Controller,依照URI和Controller的Mapping,这符合Roy Fielding博士对于资源的定义:资源是 一种概念上的映射 ――接收到标识符(标识这个映射),将它应用于当前的映射实现(mapping implementation,通常是与特定集合相关的树的深度遍历和/或哈希表的组合)上,以发现当前负责处理该资源的实现 ,然后处理器实现基于请求的内容选择适当的动作+响应 .在RoR里这叫做Router.另外V中可以根据HTTP请求返回适当的Presentation.
REST与CoC
按照“惯例优先原则”可以做很多事情,比如Blog类对应BlogController,对应/blog.我们可以将该原则落实到以上四个元素上:M,V,C和Router.之后就是按照上述对应关系,形成一种简单的开发框架,我们需要做的事情只是:
1、创建数据库Schema,比如建立表Blog
2、配置数据库连接,选择使用何种数据库
3、启动Tomcat,在的地址栏中输入http://localhost:8080/blog/new创建Blog(返回写blog的表单),http://localhost:8080/blog/12,显示文章;http://localhost:8080/blog/edit,返回修改表单;http://localhost:8080/blog/,返回所有blog,加上q?time=或者http://localhost:-08/blog/list,按时间查询,后者的问题是如果Blog表有两个字段是时间就没办法了,但是我们可以它只有一个时间的时候默认结果,这就是“惯例优先”作用。
输入这些URL只是证明系统可以正常的工作。然后你可以定制你的HTML页面,把这些链接放到你喜欢的地方,或者作为按钮对应的服务。所有的服务,都是REST的。一个RCP客户端也可以使用,或者是Delphi.
系统在背后默默的根据数据库Schema创建了Blog类,然后其他都是通用的组件,放入Blog类,比如GenericController.setModel(T model),将Blog类的实例放入。
灵活性与可扩展性
如果只是这样,那么这个系统实际上做不了什么太有价值的事情(这只是一个数据库外的薄层),“惯例优先”并不是“惯例决定”,我们必须能让开发自己个性化的组件,以完成更强大的功能。
那么就要有如下逻辑:
1、对于M:首先检查classpath里是否有url中寻找的实体(比如blog,我们不能说那是资源,资源是映射),这个实体就是Developer创建的,如果没有,则去数据库中查找名为blog的表,创建Blog类(并不在文件系统中生成这个class)。如果也没有,则返回not found.
2、对于C:首先根据Router中的默认定义,寻找BlogController,检查是否存在于classpath中,没有则用ControllerGenerator生成BlogController(与EntityGenerator相同,不过既然我的Generator可以指定父类,实际上用一个ClassGenerator就应该OK了)。
3、对于V:现在默认路径下寻找页面(jsp或者html),如果没有,则创建Blog页面流(Stream)返回给客户端。
4、对于Router:默认就是/blog对应BlogController.当然你可以建立自己的Router文件,来修改映射关系。
“惯例优先”,那这个惯例是谁的惯例呢? 其实Router的可Developer定制就表示了系统可以支持在四个Web架构元素中之间建立自己的“惯例”。比如,所有的表名都加上T_Blog,但是生成类名是Blog,而Controller是BlogAction(有人就是喜欢叫它Action),OK,这都没问题。
技术细节
我们回到M讨论。我这个M既要承担ORM的责任又要承担DVM(Domain View Mapping)的职责。也就是说,我期望我的对象里面可以关联其他对象,同时我也希望我在UI上显示正确的中文名,而不是字段名。
先说ORM,关联关系(继承就先别指望自动生成了),我可以根据数据库表的主外键关系生成,然后用ASM动态加上注解(还是基于Hibernate)。我现在唯一不确定的是,用ASM生成的属性,类型可以是另外的类吗?答案是可以,跟内置的Java类型是一样一样的。
然后是我要让生成HTML或者XML能正确显示字段的Label,这个可以提取表的注释,然后利用ASM动态加上注解。
ust Play
对于那些基础数据的简单维护,或者你的系统设计本来就不想什么OO范型,那么这个基础框架是有用的,面对真正复杂的大型应用,它比较好的一点是不会阻止你实现复杂的对象图。
写到这,我第一次感到:我干嘛还要用Java呢?因此最后我只能说,Just,正如Dave所说,在真正的项目中,代码生成并不像看起来那么有用,但是,起码你有了一个好的脚手架~~~
相关文章:
[ 责任编辑:之极 ] &&&&
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte