Microsoft Word - J2EE.第一部分.doc

Size: px
Start display at page:

Download "Microsoft Word - J2EE.第一部分.doc"

Transcription

1 J2EE 交 流 文 档 概 述 曾 有 人 说 过 : 程 序 等 于 算 法 加 数 据 结 构 但 是 在 今 天, 这 句 话 已 不 适 用 大 部 分 的 商 业 应 用 开 发 我 们 面 临 一 个 需 求 容 易 变 化 业 务 逻 辑 复 杂 多 数 据 源 多 表 现 形 式 的 应 用 情 形 如 何 快 速 高 质 量 地 完 成 项 目 开 发, 如 何 避 免 公 司 内 部 多 项 目 组 的 重 复 劳 动, 建 立 灵 活 而 强 大 的 应 用 架 构 以 提 高 整 体 生 产 力, 这 是 目 前 很 多 开 发 人 员 和 公 司 管 理 层 面 临 的 难 题 本 文 从 实 用 主 义 出 发, 避 免 纯 技 术 的 讨 论, 对 实 际 项 目 中 一 些 热 点 难 点 进 行 讨 论, 力 求 给 读 者 一 些 启 示 限 于 笔 者 的 经 验 和 能 力, 其 中 不 足 和 错 误 之 处 还 望 指 正 第 一 部 分 是 对 若 干 专 题 的 讨 论 以 及 优 秀 开 源 架 构 SpringFramework 技 术 的 介 绍, 第 二 部 分 是 一 个 实 际 的 项 目 的 设 计 和 开 发 附 录 A 是 一 份 设 计 文 档, 是 对 第 一 部 分 数 据 采 集 部 分 的 补 充 注 : 这 篇 文 档 是 笔 者 学 习 和 使 用 Java 到 现 在 的 一 点 总 结, 旨 在 和 cjsdn 的 网 友 分 享 经 验 与 教 训 部 分 内 容 因 涉 及 具 体 工 作 而 比 较 简 略, 敬 请 见 谅 目 录 第 一 部 分 专 题 讨 论... 2 数 据 库 编 程... 2 避 免 前 台 的 或 核 心 的 代 码 直 接 访 问 数 据 库... 2 DAO 模 式... 3 不 应 过 分 强 调 应 用 的 数 据 库 移 植 性... 4 适 当 地 使 用 O/R Mapping 技 术 简 化 数 据 库 的 读 写... 5 实 例... 5 ORM 实 现 技 术... 5 Hibernate 的 简 单 介 绍... 6 底 层 的 JDBC 技 术 往 往 更 有 效... 6 SpringFramework JDBC Support... 7 实 例... 8 Spring 对 SQLException 的 封 装... 9 runtime exception vs. checked exception... 9 多 数 据 源 Web 层...11 MVC 的 Web 开 发 方 式...11 SpringFramework WebMVC SpringFramework 的 简 单 介 绍 Goal of SpringFramework 利 用 面 向 对 象 的 优 秀 技 术 将 面 对 接 口 编 程 做 到 实 处 将 单 元 测 试 变 的 简 单 SpringFramework 的 概 貌 BeanFactory 和 IoC 容 器 什 么 是 BeanFactory? 什 么 是 IoC?... 19

2 Spring 技 术 构 架 Power the whole application with Spring Integrate with third-party web application frameworks Use Spring to manage EJBs Remoting through SOAP, RMI, Web services 参 考 资 料 第 二 部 分 Demo 系 统 附 录 A 第 一 部 分 专 题 讨 论 J2EE, 开 发 企 业 应 用 很 好 的 一 项 技 术 或 者 说 平 台 它 的 内 涵 非 常 丰 富, 使 用 人 群 也 非 常 庞 大, 有 很 多 最 佳 实 践, 优 秀 的 工 具, 优 秀 的 api 和 framework 事 实 证 明,J2EE 确 实 可 以 为 复 杂 的 企 业 应 用 提 供 强 大 的 技 术 保 障 但 或 许 由 于 它 过 于 复 杂, 开 发 人 员 缺 少 足 够 的 技 能 或 开 发 的 经 验, 往 往 也 是 导 致 一 些 J2EE 项 目 落 马 的 原 因 这 一 部 分 中, 我 花 一 定 篇 幅 谈 谈 学 习 和 使 用 J2EE 技 术 到 现 在 对 若 干 问 题 的 看 法 大 部 分 内 容 都 不 会 讲 的 很 细 节, 因 为 我 假 设 读 者 具 备 相 当 的 这 方 面 知 识 数 据 库 编 程 在 今 天, 几 乎 每 个 应 用 都 会 使 用 数 据 库 来 保 存 信 息 这 方 面 我 们 遇 到 的 挑 战 是 : 如 果 需 求 明 确, 部 署 情 形 也 比 较 单 一, 则 往 往 针 对 一 个 特 定 数 据 库 产 品 的 某 一 版 本 设 计 schema 应 用 的 复 杂 性 往 往 导 致 会 建 立 很 多 表, 很 多 表 与 表 之 间 的 联 系, 还 有 些 诸 如 字 段 的 约 束, 触 发 器 存 储 过 程 等 数 据 库 逻 辑 有 时, 一 个 项 目 需 要 同 时 使 用 几 个 数 据 库, 或 是 需 要 把 项 目 部 署 在 不 同 的 数 据 库 中 如 何 处 理 好 数 据 持 久 层.. 我 的 看 法 和 建 议 是 : 避 免 前 台 的 或 核 心 的 代 码 直 接 访 问 数 据 库 把 数 据 库 读 写 的 代 码 分 散 在 应 用 系 统 的 各 个 地 方, 这 是 一 种 冒 险 的 做 法 数 据 库 schema 的 信 息 被 扩 散 到 应 用 的 各 个 角 落, 万 一 schema 发 生 一 点 变 化, 如 字 段 名 发 生 变 化 或 一 个 字 段 从 一 个 表 转 移 到 另 一 个 表, 就 会 牵 扯 很 多 代 码 另 外 编 写 高 质 量 的 数 据 库 读 写 代 码 也 是 需 要 一 定 技 能 的, 比 如 如 何 恰 当 地 提 交 事 务 或 回 滚, 如 何 在 错 误 发 生 后 回 收 资 源 举 个 例 子, 这 样 的 代 码 或 许 很 多 人 都 看 到 过 : try{ Connection con=...//getconnection Statement stat=con.createstatement("select * from tab"); ResulstSet rs=stat.executequery();..// 处 理 结 果 集

3 rs.close(); stat.close(); con.close(); }catch(sqlexception e){..} 这 里 如 果 rs.close() 处 发 生 异 常,conneciton 将 不 能 被 关 闭, 造 成 资 源 的 浪 费 往 往 有 些 项 目 组 中 选 择 自 己 开 发 了 数 据 库 读 写 api, 如 DbClass db=new DbClass(); RecordSet rs=db.query("select * from tab"); 这 个 模 块 一 般 由 比 较 熟 悉 数 据 库 编 程 的 开 发 人 员 负 责 设 计 和 开 发 但 是 遗 憾 的 是, 我 很 少 看 到 编 得 比 较 出 色 的 这 种 实 用 类 往 往 是 性 能 不 佳, 灵 活 度 不 大 甚 至 犯 了 类 似 前 面 的 低 级 错 误 其 实 目 前 有 些 开 源 项 目 (OpenSource Project) 提 供 了 比 较 高 质 量 的 类 似 功 能 的 实 用 类 或 框 架, 直 接 使 用 它 们 我 认 为 是 更 好 的 选 择 DAO 模 式 为 了 避 免 数 据 库 读 写 的 代 码 充 斥 在 应 用 程 序 中, 我 们 可 以 使 用 DAO 模 式, 集 中 进 行 数 据 的 读 写 DAO(Data Access Object) 是 一 个 基 本 的 J2EE 设 计 模 式, 往 往 配 合 VO(Value Object) 来 简 化 数 据 的 读 写 和 传 递 典 型 的, 如 果 我 们 要 处 理 数 据 库 的 user 表, 可 以 建 立 一 个 User 类, 描 述 了 user 表 的 数 据 然 后 建 立 一 个 接 口 UserDao, 规 定 系 统 关 于 User 操 作 的 接 口 系 统 的 其 他 模 块 都 只 和 这 个 接 口 打 交 道, 而 无 需 知 道 实 现 类 我 们 可 以 选 用 一 种 或 多 种 技 术 来 实 现 这 个 接 口 可 以 是 基 于 JDBC 或 是 Hibernate,JDO 等 ; 甚 至 可 以 把 基 于 JDBC 的 DAO 实 现 类 也 分 为 面 向 MySQL 或 是 面 向 Oracle 的 这 样, 变 动 一 项 具 体 的 数 据 库 访 问 技 术 或 是 更 改 了 数 据 库 产 品, 只 需 要 在 实 现 类 中 做 改 动, 而 不 需 要 更 改 应 用 的 其 他 代 码 对 应 的 UML Class Diagram 如 下 :

4 另 外,DAO 模 式 不 光 可 以 解 决 多 数 据 库 和 数 据 库 移 植 的 问 题, 他 同 样 适 用 于 非 数 据 库 形 式 的 数 据 源 在 下 文 多 数 据 源 专 题 中 会 讨 论 这 个 不 应 过 分 强 调 应 用 的 数 据 库 移 植 性 Java 具 有 先 天 的 优 势,JDBC 很 好 地 抽 取 了 数 据 库 的 共 性 在 实 际 项 目 中, 确 实 会 发 生 从 一 个 数 据 库 转 到 另 一 个 数 据 库 的 情 形 因 而 有 不 少 人 抱 有 这 样 的 观 点 :Java/J2EE 项 目 应 着 重 考 虑 数 据 库 的 可 移 植 性, 尽 量 少 的 使 用 当 前 数 据 库 的 特 性, 如 自 增 字 段 sequence trigger stored procedure 等 这 种 观 点 不 无 道 理, 但 是 我 认 为 在 大 多 数 情 形 下, 这 样 做 是 无 益 的 如 果 系 统 已 经 比 较 明 确 的 使 用 一 种 特 定 数 据 库 ( 如 Oracle), 公 司 花 费 很 多 财 力 来 购 买 license, 聘 请 DBA, 如 果 我 们 只 使 用 它 很 少 的 功 能, 以 追 求 所 谓 的 数 据 库 移 植 性, 某 种 程 度 上 这 无 疑 是 一 种 浪 费 一 般 来 说 数 据 库 只 保 存 数 据, 应 用 逻 辑 应 该 分 离 出 来, 在 应 用 代 码 中 完 成 但 是 有 些 操 作, 直 接 使 用 数 据 库 的 trigger,store procedure 来 完 成 或 许 要 比 由 应 用 程 序 来 完 成 高 效 的 多 即 使 我 们 需 要 面 对 多 种 数 据 库, 我 们 也 还 是 可 以 使 用 数 据 库 的 特 性 来 提 高 效 率, 以 提 高 公 司 资 源 的 利 用 度 毕 竟 主 流 的 数 据 库 在 功 能 度 方 面 是 类 似 的, 只 需 要 做 一 定 的 包 装, 就 不 会 妨 碍 我 们 使 用 特 定 数 据 库 的 增 强 特 性

5 适 当 地 使 用 O/R Mapping 技 术 简 化 数 据 库 的 读 写 由 于 我 们 借 助 Java 技 术 用 面 向 对 象 思 想 开 发 项 目, 所 以 试 图 用 面 向 对 象 的 方 式 来 处 理 数 据 库 是 很 自 然 的 数 据 库 提 供 的 是 二 维 的 接 口, 而 按 对 象 方 式 组 织 数 据 可 以 有 一 定 的 关 系 和 层 次 ORM (Object/Relative Mapping) 就 是 提 供 了 这 种 印 射 关 系 它 的 好 处 是 不 言 而 喻 的 我 们 可 以 统 一 地 使 用 面 向 对 象 思 想 来 编 写 业 务 逻 辑 和 数 据 处 理 模 块 实 例 举 个 例 子, 原 先 我 们 如 果 要 更 改 一 个 用 户 名, 代 码 或 许 会 这 样 实 现 boolean renameusername(int userid,string newname)... } String sql="update user set name=? where id=?"; Connection conn=getconnectin(); PreparedStatement pstat=conn.preparestatement(sql); pstat.setstring(1,newname); pstat.setint(2,userid); int row=pstat.executeupdate(); closesafe(pstat,conn); return row==1; 而 如 果 使 用 ORM 技 术, 或 许 只 需 要 User user=session.get(user.class,new Integer(userId)); user.setname(newname); session.update(user); 更 明 显 的 优 势 是 : 对 于 数 据 库 多 表 关 联, 我 们 一 般 需 要 编 写 带 有 JOIN 的 SQL 语 句, 而 使 用 ORM 技 术 可 以 透 明 的 处 理 这 种 多 表 关 联 如 语 句 query("from User user where user.commpany.name= foo and user.age>30") 可 以 找 出 30 岁 以 上, 在 foo 公 司 任 职 的 人 ( 数 据 库 中 user 表 有 个 字 段 是 company_id, 是 表 company 的 外 键 ) 当 然 底 层 实 现 是 由 ORM 工 具 动 态 生 成 SQL 语 句, 但 这 样 比 我 们 手 动 写 要 方 便 和 保 险 的 多 ORM 实 现 技 术 ORM 技 术 在 近 些 年 是 应 用 的 热 点, 出 现 了 很 多 优 秀 的 实 现 技 术, 其 中 J2EE 的 Entity Bean 尤 其 是 CMP 就 是 一 种 ORM 尝 试 它 使 用 EJB-QL 来 实 现 查 询, 项 目 中 通 过 Entity Bean 而 不 是 直 接 通 过 JDBC 访 问 数 据 库 来 读 写 数 据 另 外 两 种 主 流 的 ORM 技 术 是 JDO 和 Hibernate 前 者 是 Sun 公 司 JCP 下 制 定 的 规 范,1.0 已 推 出 2 年 了, 更 强 大 的 2.0 规 范 正 在 制 定 中 JDO 的 优 势 是, 它 作 为 规 范 可 以 由 不 同 厂 家 实 现 不 同 的 产 品, 而 保 持 接 口 的 一 致 后 者 Hibernate 可 能 用 的 更 广 一 点, 它 是 开 源 的 项 目 ( 并 不 遵 循 JDO 规 范, 以 自 己 的 方 式 实 现 了 ORM, 包 括 提 供 了 强 大 而 简 易 的 查 询 语 言 HQL(Hibernate Query Language), 也 提 供 类 似 JDO 的 Criterion 方 式 的 查 询 api

6 Hibernate 的 简 单 介 绍 Hibernate 的 发 行 包 中 提 供 了 比 较 丰 富 的 文 档 和 范 例, 应 该 说 上 手 是 比 较 容 易 的 我 的 习 惯 做 法 是, 先 设 计 数 据 库 表, 然 后 使 用 工 具 读 取 表 信 息 生 成 Java 类 文 件 和 mapping 文 件, 然 后 手 动 做 一 些 修 改 如 添 加 主 键 生 成 算 法 一 对 多 多 对 多 关 系 等 另 外, 也 尝 试 过 使 用 XDoclet 和 Ant, 在 Java 类 文 件 中 用 注 释 的 方 式 提 供 mapping 信 息, 由 XDoclet 来 生 成 hbm.xml 文 件 Hibernate 本 身 提 供 一 些 工 具 可 以 由 类 生 成 数 据 库 定 义 (DDL) 和 mapping, 但 我 不 倾 向 这 么 做 设 计 数 据 库 的 工 作 还 是 由 专 业 的 DBA 来 完 成 比 较 好, 借 助 他 们 对 性 能 优 化 和 设 计 上 的 一 些 经 验 另 外 往 往 一 个 数 据 库 同 时 为 几 个 应 用 系 统 服 务, 有 些 是 Java 写 的, 有 些 不 是 甚 至 一 个 数 据 库 的 寿 命 要 比 Java/J2EE 项 目 的 还 长 以 上 种 种, 让 我 认 为 先 有 表 再 生 成 Java 类 更 合 情 合 理 些 Hibernate 比 较 注 重 使 用 当 前 数 据 库 的 特 性 以 一 个 分 页 功 能 为 例, 使 用 Hibernate 的 实 现 是 Query q = session.createquery("from News as news where..."); q.setfirstresult(11); q.setmaxresults(10); List l = q.list(); Hibernate 会 尝 试 使 用 当 前 数 据 库 对 分 页 的 支 持 来 完 成 这 一 功 能, 如 Oracle 提 供 的 rownum, MSSQL 和 DB2 提 供 的 TOP, MySQL 和 PostgreSQL 提 供 的 LIMIT 字 句 如 果 数 据 库 本 身 不 支 持 分 页, 则 会 使 用 JDBC 2 的 可 滚 动 结 果 集, 来 绝 对 定 位 到 起 始 记 录 来 得 到 一 定 条 数 的 纪 录 由 于 JDBC 中 的 ResultSet 是 保 持 连 接 的, 并 非 一 次 性 把 数 据 全 部 读 到 本 地, 绝 对 定 位 会 跳 过 前 面 的 纪 录, 所 以 性 能 也 不 差 如 果 当 前 数 据 库 既 不 支 持 分 页 SQL 也 没 有 提 供 JDBC2 以 上 的 驱 动, 则 会 使 用 JDBC1 的 方 式, 用 resultset.next() 来 跳 过 若 干 纪 录, 来 实 现 读 取 特 定 区 域 的 纪 录 Hibernate 在 延 迟 读 入 大 对 象 处 理 多 表 关 联 等 方 面 都 做 得 比 较 灵 活 和 强 大 难 怪 它 的 支 持 者 人 数 要 比 JDO 的 多 一 些, 成 为 当 前 最 主 流 的 O/R Mapping 技 术 之 一 尽 管 Hibernate 等 ORM 技 术 大 大 提 高 了 我 们 的 生 产 力, 并 使 数 据 库 持 久 层 的 代 码 和 业 务 逻 辑 层 一 样, 符 合 面 向 对 象 的 思 想 但 我 们 还 是 应 该 谨 慎 选 择 和 使 用 ORM 技 术, 并 且 尽 量 小 范 围 地 使 用 这 些 API( 如 仅 在 DAO 实 现 类 中 ), 不 要 让 系 统 受 限 于 当 前 使 用 的 数 据 持 久 技 术 虽 然 很 多 ORM 技 术 都 提 供 本 地 的 高 速 缓 存 和 对 象 延 迟 加 载 来 提 高 性 能, 但 是 有 些 时 候 直 接 使 用 JDBC 或 许 效 率 更 高 另 外, 由 于 Hibernate 比 较 好 地 做 到 了 适 应 各 个 数 据 库, 所 以 对 提 高 应 用 适 应 多 数 据 源 很 有 帮 助 以 下 文 的 Demo 系 统 为 例, 笔 者 最 初 使 用 Linux 上 的 PostgreSQL, 后 来 转 到 MySQL, 最 后 使 用 hsqldb 这 几 次 变 迁 代 码 更 改 的 很 少, 基 本 只 对 Mapping 文 件 和 Hibernate 的 配 置 参 数 做 了 少 量 修 改 底 层 的 JDBC 技 术 往 往 更 有 效 正 如 前 面 说 的, 虽 然 现 在 有 比 较 优 秀 的 ORM 技 术 供 我 们 选 择, 但 并 不 表 示 ORM 优 于 传 统 的 JDBC 技 术, 反 之 亦 然 JDBC 提 供 了 非 常 直 接 也 非 常 有 效 的 方 式 来 和 数 据 库 交 互 有 经 验 的 数 据 库 开 发 人 员 可 以 编 写 出 效 率 极 高 的 SQL 语 句 来 完 成 某 项 工 作, 而 如 果 用 ORM 或 是 朴 素 的 SQL+JDBC 来 做, 或 许 代 码 量 要 高 一 个 数 量 级 不 过, 也 正 如 本 节 一 开 始 所 说 的,JDBC 是 个 比 较 底 层 的 api, 编 出 高 质 量 的 JDBC 代 码, 对 程 序 员 也 是 不 小 的 考 验 我 个 人 比 较 推 荐 使 用 Springframework 的 JDBC 模 块 和 Jakarta commons DbUtils 等 的

7 成 熟 API 来 简 化 我 们 的 工 作. SpringFramework JDBC Support 相 关 的 包 如 下 : 和 Spring 的 其 它 模 块 一 样,jdbc support 使 用 IoC 模 式 来 分 离 数 据 库 资 源 (IoC 模 式 将 在 下 文 详 细 介 绍 ) 使 用 时 首 先 新 建 一 个 org.springframework.jdbc.core.jdbctemplate 对 象, 调 用 它 的 setdatasource (javax.sql.datasource datasource) 方 法 设 置 数 据 源 一 般 我 们 使 用 JNDI 来 获 取 容 器 中 的 数 据 源, 在 没 有 容 器 的 情 况 下 可 以 使 用 类 似 Jakarta Commons DBCP 这 样 的 本 地 连 接 池 来 建 立 数 据 源 数 据 读 写 需 要 调 用 对 应 的 query 或 execute 方 法 JdbcTemplate 主 要 实 现 了 JdbcOperations 方 法, 提 供 简 单 到 复 杂 的 数 据 读 写 方 法

8 实 例 下 面 举 几 个 例 子, 演 示 它 的 用 法 数 据 表 user(id,name,age) id 为 int 型 主 键,name 为 char(10), age 为 int 型 查 询 指 定 id 用 户 的 年 纪 int getage(int userid){ } return jdbctemplate.queryforint("select age from user where id="+userid); 得 到 所 有 用 户 名 String[] getallusername(){ return (String[]) jdbctemplate.query( "select name from user",new ResultSetExtractor(){ public Object extractdata(resultset rs) throws SQLException{ List list=new ArrayList(); while(rs.next()){

9 } }); list.add(rs.getstring(1)); } return list.toarray(new String[list.size()]); } 可 以 看 到 这 个 api 提 供 的 jdbc 封 装 比 较 灵 活 并 很 通 用, 使 得 原 本 复 杂 冗 余 的 JDBC 代 码 变 成 直 白 而 简 洁, 这 便 是 善 用 设 计 模 式 的 结 果 (Spring 的 jdbc 实 用 类 大 量 使 用 Template Builder Command Strategy 等 设 计 模 式 ) Spring 对 SQLException 的 封 装 另 外 值 得 一 提 的 是 Spring 对 SQLException 的 封 装 org.springframework.dao.dataaccessexception 是 Spring 中 的 RuntimeException, 作 为 数 据 访 问 相 关 异 常 exception 继 承 树 的 根 Spring 对 SQLException 和 HibernateException 等 异 常 作 了 封 装, 统 一 成 DataAccessException 这 样 在 DAO 中 可 以 只 抛 出 这 个 异 常 ( 及 其 子 类 ), 而 不 会 抛 出 SQLExcception/HibernateException 等 具 体 API 的 异 常 runtime exception vs. checked exception 把 它 设 计 成 Runtime Exception 而 不 是 常 见 的 Checked Exception, 这 也 是 经 过 仔 细 考 虑 的 对 于 RuntimeException 及 其 子 类, 不 要 求 代 码 中 显 式 地 try/catch 如 我 们 经 常 遇 到 的 NullPointerException 和 NumberFormatException 便 是 RuntimeException 假 设 他 们 是 checked exception, 那 么 我 们 编 写 任 何 一 行 对 象 的 操 作 都 要 显 式 地 try/catch 即 使 在 我 们 很 明 确 不 会 出 问 题 的 情 况 下 如 String s="a"; System.out.println(s.length()); 如 果 NullPointerException 是 checked exception, 则 我 们 就 不 得 不 写 成 : String s="a"; try{ System.out.println(s.length()); }catch(nullpointerexception e){ } //never happen 这 样 是 罗 嗦 而 不 合 理 的 对 于 RuntimeException 与 Checked Exception 的 取 舍 一 直 是 Java 社 区 讨 论 的 话 题 我 比 较 赞 同 类 似 SrpingFramework 开 发 人 员 的 观 点 尽 量 把 异 常 设 计 成 RuntimeException, 免 去 代 码 中 无 谓 的 try/catch block, 因 为 很 多 时 候 我 们 都 无 法 在 异 常 发 生 后 挽 回 什 么 当 然 不 能 让 一 个 程 序 因 为 一 个 小 小 的 异 常 ( 如 NumberFormatException) 而 非 正 常 退 出 应 该 在 某 些 地 方 统 一 进 行 异 常 的 处 理 这 样 的 代 码 不 会 有 安 全 的 隐 患 也 更 简 洁 当 然 Checked Exception 在 某 些 情 形 下 也 是 正 确 的 选 择, 主 要 是 异 常 很 容 易 发 生, 或 者 异 常 的 内 容 或 抛 出 异 常 本 身 可 以 认 为 是 方 法 的 一 种 返 回 结 果 Spring 通 过 SQLException 的 语 义 来 决 定 包 装 成 什 么 DataAccessException 的 子 类 以 往 我 们 用 JDBC 直 接 读 取 数 据, 遇 到 的 异 常 都 是 SQLException, 无 论 是 主 键 冲 突, 还 是 超 出 列 宽, 或 是 SQL 语 法 错 误 而 使 用 Spring 的 JDBC Support, 我 们 面 对 的 是 更 有 意 义 的 异 常, 如 TypeMismatchDataAccessException

10 OptimisticLockingFailureException InvalidDataAccessApiUsageException 等 下 图 为 其 完 整 的 继 承 树 如 此 丰 富 的 继 承 树 有 助 于 我 们 进 行 集 中 的 异 常 处 理 从 实 现 上 来 说,SpringFramework 采 集 了 各 个 数 据 库 的 不 同 SQL Error Code, 在 遇 到 SQLException 时 分 析 其 error code, 包 装 成 对 应 的 特 定 异 常 类 另 外 在 在 执 行 不 同 方 法 时 抛 出 的 SQLException 也 揭 示 了 异 常 的 语 义, 也 有 助 于 SpringFramework 更 好 的 完 成 异 常 的 分 类 和 包 装 多 数 据 源 数 据 库 固 然 是 项 目 的 基 石, 但 很 多 时 候 我 们 需 要 先 收 集 和 整 理 数 据 原 始 的 数 据 可 能 来 自 另 一 个 数 据 库, 或 是 一 些 Excel 表 格 或 txt 文 件, 或 需 要 监 听 某 一 端 口 定 时 产 生 的 数 据 对 于 一 种 情 形 : 原 始 数 据 不 需 要 或 是 不 能 保 存 在 数 据 库, 我 们 可 以 采 用 DAO 模 式 来 屏 蔽 这 种 差 异 还 是 原 先 那 个 用 户 信 息 的 例 子, 如 果 数 据 保 存 在 xml 或 是 excel 或 是 txt 文 件 中, 我 们 编 写 的 DAO 实 现 类 只 要 使 用 对 应 的 api 读 取 这 些 数 据 如 果 数 据 比 较 少, 可 以 一 次 性 读 到 内 存 ( 如 DAO 实 现 类 的 finduserbyid 被 调 用 时, 直 接 从 内 存 中 检 索 数 据 ) 如 果 数 据 量 比 较 大, 则 可 能 需 要 每 次 去 访 问 一 次 数 据 源 当 然 这 是 比 较 少 见 的 情 况, 更 多 时 候 我 们 还 是 需 要 设 计 数 据 采 集 模 块, 将 原 始 数 据 导 入 数 据 库, 如 有 必

11 要 还 需 要 把 更 新 过 的 数 据 再 写 回 原 始 数 据 源 虽 然 这 项 工 作 与 具 体 的 业 务 需 求 比 较 紧 密, 没 有 特 别 通 用 的 解 决 方 法, 但 通 过 良 好 的 设 计 还 是 可 以 达 到 一 定 程 度 的 通 用 附 录 A 中 是 我 曾 为 一 个 实 际 项 目 的 数 据 采 集 做 的 设 计, 仅 作 参 考 Web 层 Web 是 J2EE 项 目 最 常 见 的 表 现 方 式, 如 何 设 计 和 开 发 出 高 质 量 的 Web 也 是 摆 在 开 发 人 员 面 前 的 难 题 目 前 开 发 Web 的 一 些 困 难 是 : Web 界 面 经 常 变 化 如 经 常 需 要 变 化 一 些 页 面 布 局 图 片 或 样 式 表, 但 不 一 定 改 变 工 作 流 程 成 功 的 应 用 可 以 接 受 这 些 修 改 而 不 需 修 改 业 务 对 象 设 置 Web 层 的 控 制 代 码 Web 界 面 中 涉 及 复 杂 的 标 签 典 型 的 动 态 网 页 中 嵌 有 大 量 的 表 格, 冗 长 的 JavaScript 以 及 用 可 视 化 工 具 生 成 的 HTML 代 码 ( 往 往 难 以 阅 读 ) 一 般 只 有 相 当 少 部 分 的 内 容 是 动 态 的 优 秀 的 Java 开 发 人 员 也 没 有 必 要 掌 握 全 面 的 页 面 制 作 和 美 工 技 能, 这 些 工 作 应 该 由 专 业 的 页 面 制 作 和 美 工 人 员 完 成 Web 开 发 与 普 通 GUI 开 发 很 不 相 同 Web 开 发 所 强 调 的 是 请 求 和 响 应, 请 求 中 只 能 带 有 String 型 的 参 数, 页 面 上 用 户 的 输 入 往 往 无 法 控 制, 无 法 限 制 用 户 按 一 定 顺 序 访 问 网 页, 而 相 反 的 是, 传 统 的 GUI 提 供 丰 富 的 控 制 和 自 定 义 控 制 的 功 能 Web 的 测 试 比 较 困 难 Web 开 发 也 是 一 个 很 大 的 话 题, 无 法 在 这 么 短 的 篇 幅 内 讨 论 很 多, 限 于 个 人 经 验, 也 无 法 开 展 很 有 深 度 和 广 度 的 探 讨 以 我 对 一 些 原 则 和 技 术 及 框 架 的 理 解, 一 个 良 好 的 Web 开 发 模 式 应 该 能 满 足 以 下 几 点 : 页 面 内 容 和 显 示 分 离 一 组 数 据, 原 先 显 示 成 html table, 现 在 要 求 显 示 成 柱 状 图 或 饼 状 图, 这 种 需 求 变 更 应 该 只 需 修 改 前 台 很 少 的 代 码 页 面 技 术 现 在 有 很 多, 常 见 的 JSP 是 一 种,Velocity 应 用 也 比 较 广 泛, 类 似 的 还 有 FreeMarker Tiles XML/XLST XMLC 等 选 择 何 种 显 示 技 术, 对 后 台 的 影 响 应 尽 可 能 的 小 另 外 Web 框 架 应 该 能 比 较 好 地 支 持 PDF Excel Word 等 视 图 的 生 成 Web 层 的 控 制 代 码 不 应 处 理 业 务 逻 辑 Web 只 是 系 统 的 表 现 层, 核 心 的 处 理 逻 辑 应 该 封 装 在 Bean 或 者 EJB 中, 而 Web 只 是 接 收 和 处 理 请 求, 把 合 适 的 请 求 转 为 向 核 心 业 务 模 块 的 调 用 如 果 较 好 地 完 成 这 一 点,Web 层 便 比 较 轻 量 和 细 薄, 业 务 逻 辑 的 内 部 实 现 变 化 并 不 会 更 改 Web 层 的 控 制 代 码 和 显 示 甚 至 从 一 个 B/S 架 构 转 为 C/S 也 是 可 行 的 对 多 语 言 的 支 持, 对 上 传 的 支 持 等 MVC 的 Web 开 发 方 式 MVC 是 开 发 Web 一 种 主 流 的 模 式, 它 良 好 地 分 离 了 视 图 控 制 和 数 据 朴 素 的 JSP 开 发 的 模 式 可 能 是 这 样 的

12 使 用 JavaBean 甚 至 标 签 库 以 及 Servlet Filter 和 Servlet Listener 可 以 一 定 程 度 上 把 逻 辑 从 jsp 中 分 离 出 来, 但 只 解 决 了 少 量 的 问 题, 我 们 还 得 处 理 流 程 控 制 验 证 更 新 应 用 程 序 状 态 等 事 情 MVC 通 过 把 问 题 分 为 三 个 类 别 来 帮 助 解 决 单 一 模 块 所 遇 到 的 某 些 问 题 Model( 模 型 ) 包 含 应 用 程 序 的 核 心 功 能 模 型 封 装 了 应 用 程 序 的 状 态, 它 对 视 图 或 控 制 器 一 无 所 知 模 型 表 示 业 务 数 据, 或 者 业 务 逻 辑 View( 视 图 ) 提 供 模 型 的 标 识 它 是 应 用 程 序 的 外 观, 使 用 户 看 到 并 与 之 交 互 的 界 面, 视 图 可 以 访 问 模 型 的 读 方 法, 但 不 能 访 问 写 方 法 此 外, 他 对 控 制 器 一 无 所 知 当 更 新 模 型 时, 通 知 和 修 改 视 图 Controller( 控 制 器 ) 控 制 器 对 用 户 的 请 求 / 输 入 作 反 应, 它 创 建 并 设 置 模 型, 选 择 要 显 示 的 视 图 设 计 一 个 良 好 的 MVC Web 框 架 是 件 艰 巨 的 任 务, 好 在 目 前 已 经 有 不 少 现 成 的 技 术, 如 Struts WebWork Maverick 其 中 Struts 可 能 是 出 现 时 间 最 早 使 用 也 最 多 的 MVC 框 架 不 过 我 在 这 里 介 绍 的 是 SpringFramework 中 的 WebMVC 因 为 通 过 比 较, 我 觉 得 Spring 在 某 些 方 面 要 比 Struts 更 灵 活 和 强 大 一 些, 对 Servlet API 甚 至 框 架 本 身 的 依 赖 性 都 比 较 小 SpringFramework WebMVC SpringFramework WebMVC 的 基 本 控 制 流 如 下 :

13 说 明 : 在 接 受 一 个 HTTP 请 求 后, 根 据 web.xml 中 的 配 置, 请 求 会 交 给 一 个 org. springframework.web.servlet.dispatcherservlet, 这 是 一 个 通 用 的 Servlet, 并 不 处 理 实 际 的 工 作 正 如 名 字 所 暗 示 的, 它 把 请 求 dispatch( 转 交 ) 给 其 他 对 象, 并 返 回 最 后 的 结 果 这 个 类 控 制 了 MVC 的 主 要 流 程 和 其 他 MVC 框 架 一 样, 一 个 Spring WebMVC 的 应 用 需 要 一 个 或 多 个 配 置 文 件 DispatcherServlet 会 调 用 当 前 的 HandlerMapping, 获 知 当 前 的 请 求 应 该 由 哪 个 Controller 处 理 由 上 面 的 UML 图 可 以 知 道, 除 了 DispatcherServlet, 其 他 的 几 个 主 要 对 象 都 是 接 口 而 非 具 体 类 SpringFramework 大 量 使 用 面 向 接 口 的 设 计, 这 一 点 我 将 在 下 文 介 绍 Spring 的 体 系 结 构 时 谈 到 在 获 知 应 该 由 哪 个 Controller 处 理 请 求 后, 便 调 用 该 Controller 的 handlerequest 方 法, 这 也 是 Controller 接 口 唯 一 必 须 实 现 的 方 法 而 Spring 提 供 了 很 多 内 建 的 Controller 子 类, 可 以 更 好 的 完 成 任 务 和 简 化 开 发, 如 常 用 的 MultiActionController 可 以 让 多 个 url 执 行 该 controller 的 不 同 方 法 handlerequest 的 返 回 结 果 是 一 个 ModelAndView 对 象, 同 时 包 括 了 JavaBean 风 格 的 Model 和 一 个 View 的 信 息 Spring 中 Model 和 View 分 的 很 清 楚, 这 里 出 现 的 ModelAndView 类 只 是 限 于 Java 语 法, 便 于 一 个 方 法 返 回 两 个 对 象 Model 是 一 些 普 通 的 Java 对 象, 每 个 对 象 有 个 字 符 串 作 为 标 示 一 般 来 说, 这 些 Model 会 使 用 request.setattribute(key,value) 来 绑 定 到 request 中, 供 view 来 使 用 但 是 Spring 的 设 计 者 充 分 考 虑 了 别 的 可 能 性, 比 如 我 们 如 果 选 用 Velocity 或 是 XMLC 作 为 前 台 的 显 示 技 术, 它 们 未 必 使 用 request.getattribute 来 获 取 数 据 如 Velocity 在 Spring 得 到 ModelAndView 后, 会 在 VelocityView 这 个 类 中, 把 Model 放 入 context 中, 供 VelocityEngine 来 整 合 数 据 这 一 点 上,Spring 就 要 比 Struts 灵 活 些,Struts 由 于 仅 关 注 JSP, 所 以 在 Struts 的 Controller 中 需 要 手 动 把 Model 一 个 个 set 到 request 中, 不 但 增 加 了 程 序 员 的 负 担, 也 为 日 后 从 JSP 转 成 别 的 显 示 技 术 留 下 了 隐 患 从 ModelAndView 中 分 离 Model 和 View 后,Spring 需 要 把 View 转 成 一 个 具 体 的 显 示 在 ModelAndView 中,View 往 往 是 一 个 字 符 串 或 是 某 个 子 类 加 上 一 个 名 字, 如 new RedirectView( a.htm ) Spring 调 用 ViewReslover 来 把 这 样 的 标 识 转 为 View 对 象 默 认 的 ViewReslover 是 InternalResourceViewResolver, 也 就 是 以 webapp 中 的 相 对 路 径 作 为 view 的 名 字 view 也 可 以 有 很 多 别 的 reslover, 如

14 ResourceBundleViewResolver 会 根 据 当 前 的 locale 选 择 一 个 view 这 样, 同 一 个 显 示 界 面, 让 美 国 人 和 中 国 人 看 到 不 同 的 页 面 布 局 是 可 能 的 由 于 使 用 用 一 份 数 据 (Model), 所 以 这 一 层 控 制 放 在 view 的 选 择 器 也 就 是 ViewReslover 中 是 合 理 的 最 后, 每 个 View 都 有 一 个 render 方 法, 根 据 Model, 以 及 HTTP request 和 response 对 象 来 生 成 最 后 的 输 出 Spring 内 置 很 多 View 的 子 类, 如 JstlView AbstractExcelView AbstractPdfView AbstractXsltView 等 除 了 这 个 基 本 的 MVC 框 架,SpringWeb 还 提 供 很 多 其 他 的 功 能, 如 JavaBean 的 绑 定 也 就 是 用 户 通 过 表 单 输 入 的 内 容, 可 以 由 Spring 来 自 动 bind 成 对 应 的 Java 对 象, 提 交 给 Controller, 而 避 免 以 往 复 杂 表 单 处 理 通 过 request.getparameter 把 一 个 个 参 数 取 出 再 处 理 不 同 于 Strurts 中 的 ActionForm,Spring 支 持 的 这 种 表 单 对 象 是 JavaBean, 因 而 业 务 系 统 中 的 domain object 可 以 直 接 在 Web 中 使 用 Spring 也 提 供 独 立 于 Web 也 独 立 于 Spring Framework 的 验 证 器, 供 Controller 处 理 表 单 前 验 证 有 效 性 另 外 一 个 有 别 于 Struts 的 是,Spring 没 有 提 供 Struts 那 么 多 自 定 义 标 签 用 于 表 单 组 件, 而 是 使 用 HTML 中 的 固 有 标 签 如 <input type= text > 来 作 为 输 入, 在 它 外 面 套 上 Spring 的 bind 标 签, 用 于 把 该 输 入 与 JavaBean 的 某 一 个 字 段 相 绑 定 第 二 部 分 中 会 有 更 深 入 的 介 绍 此 外,SpringWeb 对 多 语 言 多 主 题 的 支 持 也 比 较 好 用 户 可 以 在 浏 览 页 面 时 随 时 更 改 界 面 语 言 和 显 示 风 格 另 外 Spring 支 持 对 页 面 的 cache 处 理, 通 过 简 单 的 设 置, 可 以 在 Framework 中 透 明 的 完 成 对 view 的 cache

15 另 外,Spring 对 上 传 的 支 持 也 比 较 新 颖 目 前 有 不 少 用 于 servlet 的 上 传 api, 如 JakartaCommons FileUpload,O Reilly 的 cos upload 和 JSP SmartUpload 等 在 Spring 中, 可 以 在 其 特 定 的 配 置 文 件 中 声 明 使 用 何 种 上 传 组 件, 在 实 际 处 理 含 有 input type= file 的 表 单 时, 直 接 可 以 把 HttpRequest 强 制 转 换 为 MultipartHttpServletRequest, 使 用 其 getfile 方 法 得 到 上 传 数 据, 而 不 用 以 往 复 杂 的 流 处 理 更 详 细 的 Spring Web 的 介 绍 可 参 见 相 关 网 站 和 资 料, 本 文 的 第 二 部 分 使 用 了 Spring 和 其 他 技 术 完 成 了 一 个 小 型 的 网 站, 通 过 阅 读 其 源 码, 可 以 对 Spring 有 个 更 直 观 的 认 识 SpringFramework 的 简 单 介 绍 在 前 面 不 少 的 模 块 中, 我 都 提 到 了 SpringFramework, 这 是 一 个 比 较 新 的 开 源 框 架 在 我 第 一 次 看 到 它 后 便 被 它 深 深 吸 引, 因 为 很 少 有 一 个 项 目 可 以 像 它 那 样 为 Java/J2EE 的 开 发 提 供 强 有 力 的 基 础 架 构, 同 时 又 提 供 丰 富 的 实 用 类 和 扩 展 Java 目 前 有 很 多 第 三 方 api 和 Framework, 但 它 们 往 往 专 注 于 Java/J2EE 项 目 很 小 的 一 部 分, 如 Struts 基 本 上 只 是 一 个 Web 应 用 框 架,Hibernate 是 一 个 持 久 层 技 术 而 SpringFramework 被 称 作 J2EE 的 软 总 线 (soft bus), 不 但 在 一 些 细 节 上 为 我 们 提 供 帮 助, 更 在 全 局 上 令 J2EE 项 目 具 有 很 高 的 灵 活 度 Goal of SpringFramework 在 具 体 介 绍 Spring 之 前, 先 提 一 下 SpringFramework 希 望 解 决 的 问 题 让 J2EE 开 发 变 的 简 单 易 用 业 务 应 用 不 依 靠 spring API 集 成 已 存 在 的 成 熟 应 用 解 决 方 案 利 用 面 向 对 象 的 优 秀 技 术 促 进 良 好 的 编 程 习 惯 让 测 试 业 务 应 用 变 得 简 单 快 速 有 效 地 组 织 你 的 中 间 层 对 象 消 除 各 式 各 样 的 配 置 文 件 将 面 对 接 口 编 程 做 到 实 处 自 由 不 依 赖 框 架 统 一 的 数 据 存 储 方 式 只 选 择 你 需 要 的 这 里 着 重 指 出 几 个 观 点, 我 认 为 它 们 是 Spring 成 功 的 主 要 原 因, 也 是 大 型 J2EE 应 用 项 目 成 功 的 要 点 利 用 面 向 对 象 的 优 秀 技 术 面 向 对 象 技 术 虽 然 不 是 解 决 一 切 问 题 的 神 兵 利 器, 但 确 实 可 以 令 我 们 的 解 决 方 案 得 到 比 较 大 的 益 处 面 向 对 象 所 追 求 的 松 散 耦 合, 对 象 封 装 正 是 我 们 面 对 复 杂 需 求 的 应 对 之 策 这 一 点 课 堂 和 不 少 书 籍 上 都 有 表 述, 但 在 实 际 项 目 的 历 练 中 才 会 愈 发 明 白 面 向 对 象 带 来 的 好 处 一 定 程 度 上, 一 个 好 的 面 向 对 象 设 计 带 来 好 的 应 用 解 决 方 案, 往 往 也 包 括 好 的 性 能 然 而 有 的 时 候 我 们 并 不 是 从 面 向 对 象 出 发 来 进 行 设 计 和 开 发 的, 一 个 典 型 的 情 形 就 是 EJB 等 复 杂 J2EE

16 技 术 的 使 用 往 往 我 们 会 陷 入 这 样 的 误 区 从 一 个 J2EE 的 视 角 来 分 析 和 解 决 问 题 : 面 对 一 些 用 例, 首 先 去 考 虑 应 该 用 哪 些 Bean(EJB) 来 处 理 但 其 实 EJB 中 一 些 特 性 是 和 面 向 对 象 相 悖 的 它 是 比 较 大 粒 度 的 组 件, 组 件 和 组 件 间 缺 乏 一 般 对 象 间 丰 富 的 关 系, 如 继 承 和 引 用 而 且 EJB 的 其 他 限 制 ( 如 不 能 新 建 线 程 获 取 本 地 资 源 等 ) 都 会 影 响 我 们 正 常 地 面 向 对 象 设 计 我 比 较 赞 同 的 做 法 是, 面 对 一 个 应 用 情 形, 首 先 使 用 传 统 的 面 向 对 象 方 法 进 行 分 析 和 设 计, 如 果 有 必 要 把 部 分 功 能 以 特 定 的 技 术 暴 露 出 来, 如 EJB EJB 等 J2EE 中 重 量 级 的 技 术 目 前 正 接 受 挑 战 这 里 就 不 再 赘 述, 有 兴 趣 的 可 以 在 网 上 找 到 相 关 的 讨 论 将 面 对 接 口 编 程 做 到 实 处 正 像 前 面 我 们 讨 论 多 数 据 库 和 多 数 据 源 时 使 用 的 DAO 模 式 一 样, 面 向 接 口 编 程 ( 而 不 是 具 体 类 ) 可 以 使 我 们 的 设 计 更 为 灵 活, 隐 藏 底 层 实 现 Spring 中 非 常 鼓 励 我 们 面 向 接 口 编 程, 我 们 保 留 一 个 对 接 口 的 引 用 而 非 具 体 类, 这 样 我 们 可 以 很 方 便 的 从 一 种 实 现 转 为 另 一 种 实 现 另 外 Spring 很 好 的 支 持 AOP(Aspect Oriented Programming), 如 果 面 向 接 口 编 程, 会 意 外 的 获 得 AOP 带 来 的 很 多 好 处 ( 在 第 二 部 分 的 演 示 代 码 中, 我 们 可 以 看 到 基 于 AOP 的 事 务 管 理 和 权 限 控 制 ) Struts 一 定 程 度 上 没 有 很 好 地 做 到 面 向 接 口 编 程, 而 是 用 了 很 多 具 体 继 承, 这 使 得 基 于 Struts 的 应 用 甚 至 Struts 本 身 欠 缺 灵 活 性, 也 不 利 于 测 试 将 单 元 测 试 变 的 简 单 JUnit 为 代 表 的 单 元 测 试 工 具 可 以 大 大 简 化 我 们 的 单 元 测 试 工 作 无 论 是 使 用 极 限 编 程 所 倡 导 的 测 试 驱 动 开 发 (TDD:Test-Driven Development) 还 是 传 统 的 ( 先 设 计, 再 编 码, 然 后 测 试 以 次 迭 代 ), 单 元 测 试 的 使 用 会 大 大 提 高 我 们 开 发 的 质 量 ( 测 试 驱 动 开 发 甚 至 可 以 改 善 我 们 的 设 计, 令 暴 露 的 接 口 更 加 合 理 ) 一 个 复 杂 的 Java/J2EE 项 目, 尤 其 是 核 心 的 业 务 处 理 模 块, 良 好 的 单 元 测 试 会 令 每 个 细 节 都 比 较 健 壮, 这 对 提 高 整 体 的 质 量 降 低 风 险 是 有 益 的 而 前 面 提 到 的 良 好 的 面 向 对 象 设 计 和 面 向 接 口 编 程 会 令 单 元 测 试 变 得 更 简 单, 加 上 Spring 提 供 的 BeanFacotry, IoC Container, 会 令 资 源 的 分 配 更 为 灵 活 即 使 不 启 动 Web Server, 我 们 也 可 以 充 分 测 试 Controller, 甚 至 借 助 Mock 技 术 测 试 与 数 据 库 J2EE Container 相 关 的 模 块 SpringFramework 的 概 貌 下 面 是 SpringFramework 的 概 貌 :

17 Spring Spring ORM Spring Web Spring AOP Web Spring DAO Spring Context MVC Spring Core Supporting utilities, Bean container Spring Core Spring AOP Spring DAO Spring ORM Spring Contex Spring Web Spring Web MVC 主 要 提 供 Bean Factory 和 IoC Container, 以 及 若 干 实 用 类 提 供 运 行 时 的 AOP 支 持 和 源 代 码 级 的 元 数 据 (metadata) 支 持 事 务 支 持,JDBC 包 装 类,DAO 模 式 的 支 持 多 种 常 见 ORM 技 术 的 支 持, 如 JDO Hibernate ibatis 对 JNDI,EJB,JavaMail, 验 证 和 UI 基 于 Web 的 Context, 透 明 的 组 件 上 传,Web 开 发 实 用 类 MVC 框 架,JSP/Excel/Pdf/Xml/Velocity 等 多 种 视 图 技 术 的 支 持 从 上 面 这 张 图 上 可 以 看 到,SpringFramework 的 模 块 性 很 强, 你 可 以 选 择 使 用 它 的 一 个 或 多 个 功 能, 如 仅 使 用 它 的 BeanFactory/IocContainer, 甚 至 只 使 用 它 对 JDBC 的 封 装 如 果 开 发 团 队 中 比 较 熟 悉 Struts, 则 可 以 继 续 使 用 Struts 作 为 Web 框 架, 而 是 用 Spring 提 供 的 JavaBean 管 理 和 事 务 支 持 所 以, 虽 然 Spring 提 供 了 One-Stop Shop 的 服 务, 但 使 用 多 少 完 全 是 开 发 人 员 的 选 择, 这 一 点 上 不 像 一 些 别 的 技 术, 要 么 不 用, 要 么 都 用 BeanFactory 和 IoC 容 器 上 文 提 到 了 BeanFactory 和 IoC 容 器, 这 是 Spring 中 很 重 要 的 一 个 概 念, 是 Spring 的 精 髓 什 么 是 BeanFactory? 经 典 的 Factory 设 计 模 式 分 为 工 厂 方 法 简 单 工 厂 和 抽 象 工 厂 把 创 建 什 么 对 象 怎 么 创 建 的 职 责 从 类 本 身 或 是 客 户 程 序 员 处 转 到 专 门 的 工 厂 类 中, 确 实 提 供 了 更 好 的 封 装 和 重 用 JDK 中 也 随 处 可 见 这 样 的 例 子, 如 SwingAPI 中 的 BorderFactory 但 这 一 设 计 模 式 的 问 题 在 于 工 厂 的 责 任 过 于 重 大 它 需 要 了 解 很 多 被 生 产 类 的 信 息, 这 甚 至 一 定 程 度 上 违 背 了 面 向 对 象 一 个 很 基 本 的 原 则 开 闭 原 则 (Software entities should be open for extension,but closed for modification.) 一 旦 类 发 生 了 改 变 或 是 增 加 了 新 的 类, 往 往 工 厂 也 得 修 改 为 此 有 人 主 张 借 助 Java 强 大 的 反 射 功 能 来 以 不 变 应 万 变, 动 态 生 成 类 的 实 例 比 如 原 本 的 简 单 工 厂 为 public IStuff factory(string name).. if("a".equals(name)) return...

18 } if("b".equals(name)) return.... 使 用 反 射, 可 以 简 化 为 public IStuff factory(string classname).. } Class clazz=class.forname(classname); Object obj=clazz.newinstance(); if(obj instanceof IStuff) return obj;.. 这 样 工 厂 就 只 承 担 简 单 的 类 型 判 断 等 责 任, 足 以 应 付 将 来 的 各 种 变 化 Spring 正 是 把 这 个 简 单 而 有 效 的 想 法 赋 予 更 灵 活 的 实 现 有 一 个 BeanFactory 读 取 配 置 文 件 ( 一 般 是 XML 文 件 ) 按 要 求 新 建 Bean 的 实 例, 并 加 以 维 护 <beans> <bean id="examplebean" class="eg.examplebean"/> <bean id="anotherexample" class="eg.examplebeantwo"/> </beans> 上 面 的 例 子 中 新 建 了 两 个 对 象, 分 别 是 eg.examplebean 和 eg.examplebeantwo 的 两 个 实 例 在 应 用 程 序 中 使 用 下 面 的 代 码 来 访 问 这 两 个 对 象 : InputStream input = new FileInputStream("beans.xml"); BeanFactory factory = new XmlBeanFactory(input); ExampleBean eb =(ExampleBean)factory.getBean("exampleBean"); 默 认 的, 新 建 的 Bean 是 作 为 Singleton 的, 也 就 是 说 系 统 中 所 有 出 现 factory.getbean ("examplebean") 的 地 方 都 返 回 同 一 个 实 例 这 也 是 Spring 所 具 有 的 一 个 特 点 避 免 过 度 的 Singleton 模 式 的 使 用 Singleton 作 为 一 个 简 单 而 有 效 的 模 式, 确 实 被 我 们 经 常 用 到, 但 他 的 问 题 在 于 : Singleton 是 具 体 类, 欠 缺 接 口 的 很 多 优 势 这 一 点 参 见 前 面 提 到 的 面 向 接 口 编 程 的 好 处 Singleton 的 使 用 造 成 难 以 与 接 口 打 交 道, 如 一 个 核 型 的 业 务 是 一 个 接 口, 提 供 多 种 实 现, 而 在 Singleton 中 往 往 需 要 给 出 具 体 的 实 现, 增 加 了 硬 编 码 依 赖 性 每 个 Singleton 需 要 自 己 查 找 它 的 配 置 参 数, 通 过 属 性 JNDI JDBC 等 系 统 如 果 出 现 很 多 Singleton, 会 令 配 置 管 理 不 一 致, 并 每 个 Singleton 中 保 留 了 与 业 务 逻 辑 不 相 关 的 大 量 关 于 配 置 的 代 码 上 述 问 题, 使 用 BeanFactory 可 以 得 到 较 好 的 解 决 因 为 Spring 提 供 统 一 而 强 大 的 语 法, 在 配 置 文 件 中 统 一 进 行 Singleton 的 建 立 可 以 新 建 一 个 Bean, 它 是 实 现 某 个 接 口 的 具 体 类 的 实 例, 而 把 它 赋 给 另 一 个 Bean, 后 者 的 方 法 中 只 要 求 一 个 接 口 的 对 象, 因 而 不 关 心 前 者 具 体 的 类 型 这 样, 在 必 要 时 我 们 只 需 要 改 变 前 者 的 类 名, 不 需 要 改 变 Bean 的 ID, 也 不 需 要 改 变 后 者 的 配 置 和 代 码, 便 完 成 了 内 部 实 现 方 法 的 改 变 这 也 是 面 向 接 口 编 程 在 Spring 的 体 现 在 运 行 时 新 建 类, 如 有 必 要 可 以 在 第 一 次 访 问 Singleton 时 新 建 实 例, 得 到 少 量 的 性 能 收 益

19 除 了 Singleton 模 式 的 新 建,BeanFactory 也 支 持 prototype, 也 就 是 按 配 置 为 模 版, 每 次 访 问 getbean 时 访 问 一 个 相 同 内 容 的 对 象, 这 在 有 时 候 也 是 有 必 要 的 需 要 指 出 的,Spring 的 基 础 是 BeanFactory, 但 是 上 层 的 应 用 可 以 对 这 个 细 节 不 关 心, 也 就 是 我 们 在 使 用 Spring 做 应 用 时, 可 以 不 去 调 用 getbean 这 些 底 层 的 方 法 比 如 在 第 二 部 分 的 Demo 中, 我 们 的 Web 应 用 就 是 使 用 Spring Web MVC, 没 有 直 接 接 触 BeanFactory 什 么 是 IoC? IoC,Inversion of Control 现 在 被 正 式 更 名 为 Dependency Injection 这 其 实 也 是 一 个 很 简 单 的 模 式, 具 体 例 子 便 会 了 解 到 他 的 简 单 和 实 用 比 如 我 们 需 要 在 一 个 类 中 调 用 一 个 EJB 的 一 个 方 法 一 种 做 法 是 在 这 个 类 中 ( 类 名 比 如 是 Foo), 创 建 context, 给 出 连 接 应 用 服 务 器 的 一 些 参 数, 然 后 lookup home interface, 再 create 一 个 远 程 对 象, 调 用 远 程 方 法 而 使 用 IoC 模 式 的 Foo 类 格 外 简 单 public class Foo.. } private RemoteInterfaceOfEJB bean; public void setbean(remoteinterfaceofejb ejb){this.bean=ejb;} public void foobar().. } bean.invokesomeop(); 可 以 看 到 新 的 Foo 中 省 去 了 大 量 查 找 资 源 或 是 释 放 资 源 的 代 码, 而 是 依 赖 外 界 给 它 提 供 EJB 的 远 程 接 口 直 接 调 用 这 样 Foo 中 的 责 任 更 加 清 晰, 对 我 们 开 发 和 维 护 都 有 好 处 那 么 这 个 EJB 应 该 由 谁 创 建 和 维 护 呢, 答 案 是 IoC Container SpringFramework 就 提 供 了 这 样 一 个 IoC Container, 用 户 接 口 就 是 前 面 提 到 的 BeanFactory 对 于 IoC 的 各 种 变 种 和 深 层 次 讨 论, 限 于 篇 幅 不 在 此 讨 论, 有 兴 趣 的 可 以 查 看 相 关 书 籍 和 网 上 的 讨 论 除 去 BeanFactory IoC,Spring 还 有 很 多 重 要 的 部 分, 就 像 前 面 的 整 体 架 构 图 中 看 到 那 样 不 过 限 于 篇 幅, 就 不 再 一 一 介 绍 了 SpringFramework 本 身 已 经 提 供 很 多 框 架 性 的 支 持 和 不 少 的 实 用 类, 它 也 在 积 极 地 改 进 和 发 展 中, 并 有 不 少 项 目 支 持 和 扩 展 Spring, 如 基 于 Spring 的 Rich Client Platform 和 权 限 框 架, Spring 的 IDE 插 件,Microsoft.Net 平 台 的 SpringFramework 移 植 等 在 第 二 部 分 中, 我 们 会 演 示 如 何 使 用 Spring 和 其 他 优 秀 的 技 术 完 成 一 个 实 际 的 项 目 最 后, 给 出 基 于 Spring 的 若 干 技 术 构 架

20 Spring 技 术 构 架 Power the whole application with Spring

21 Integrate with third-party web application frameworks

22 Use Spring to manage EJBs Remoting through SOAP, RMI, Web services

23 参 考 资 料 Expert One-on-One: J2EE Design and Development by Rod Johnson(Wrox, ) 第 二 部 分 Demo 系 统 附 录 A

untitled

untitled -JAVA 1. Java IDC 20 20% 5 2005 42.5 JAVA IDC JAVA 60% 70% JAVA 3 5 10 JAVA JAVA JAVA J2EE J2SE J2ME 70% JAVA JAVA 20 1 51 2. JAVA SUN JAVA J2EE J2EE 3. 1. CSTP CSTP 2 51 2. 3. CSTP IT CSTP IT IT CSTP

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

计算机软件技术专业教学计划

计算机软件技术专业教学计划 计 算 机 软 件 技 术 专 业 人 才 培 养 方 案 ( 服 务 外 包 方 向 ) 专 业 大 类 名 称 ( 代 码 ):++(++) 专 业 类 名 称 ( 代 码 ):++++++(++++) 专 业 名 称 ( 代 码 ):+++++++(++++++) 修 业 年 限 : 三 年, 全 日 制 招 生 对 象 : 三 年 制 普 通 高 中 及 对 口 中 职 专 业 毕 业 生

More information

优迈科技教学大纲2009版本

优迈科技教学大纲2009版本 java 软 件 工 程 师 培 训 教 学 大 纲 1 JAVA 软 件 工 程 师 培 训 教 学 大 纲 深 圳 软 件 园 人 才 实 训 基 地 2009 年 3 月 目 录 java 软 件 工 程 师 培 训 教 学 大 纲 2 教 学 阶 段...3 第 一 章 JAVA 起 步...3 第 二 章 面 向 对 象 的 编 程...4 第 三 章 数 据 结 构 IO 线 程 网 络...5

More information

untitled

untitled 653 JAVA 2008 11 Institution of Software Engineer... 2... 4... 4... 5... 5... 8... 8... 8... 8... 8... 9... 9... 9... 11... 13... 13... 13... 13... 15... 15... 15... 15... 16... 16... 17... 17... 17...

More information

J2ME ISBN J2ME MIDP MIDP 2.0 API J2ME Netbeans IDE 4.1 Mobility Pack 4.1 MIDlet MIDlet MIDP PUSH API PDA API Ja

J2ME ISBN J2ME MIDP MIDP 2.0 API J2ME Netbeans IDE 4.1 Mobility Pack 4.1 MIDlet MIDlet MIDP PUSH API PDA API Ja Java JBuilder 2005 2005 6 ISBN 7-121-01166-2 69.00 1 688 JBuilder JBuilder 2005 JBuilder JBuilder 2005 JBuilder 2005 Java Java Java JBuilder 17 J2ME 2006 1 ISBN 7-121-02210-9 39.00 1 436 J2ME MIDP MIDP

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

TopTest_Adminstrator.doc

TopTest_Adminstrator.doc 壹 前 言... 3 貳 系 統 簡 介... 4 一 TKB multimedia Top-Test 系 統 架 構...4 1. 使 用 者 介 面 層 (Presentation tier)...5 2. 商 業 邏 輯 層 (business logic tier)...5 3. 資 料 服 務 層 (data services tier)...5 二 TKB Multimedia Top-Test

More information

目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇... 3 1.1 业 务 流 程 管 理... 4 2. 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX3... 5 2.1 BPMX3 是 什 么... 5 2.2 为 什 么 要 优 先 采 用 BPMX

目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇... 3 1.1 业 务 流 程 管 理... 4 2. 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX3... 5 2.1 BPMX3 是 什 么... 5 2.2 为 什 么 要 优 先 采 用 BPMX BPMX3 技 术 白 皮 书 业 务 流 程 开 发 平 台 介 绍 目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇... 3 1.1 业 务 流 程 管 理... 4 2. 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX3... 5 2.1 BPMX3 是 什 么... 5 2.2 为 什 么 要 优 先 采 用 BPMX3... 5 2.2.1 BPMX3

More information

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式... 6 1. 软 件 工 程 专 业 课 程 类 型...7

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式... 6 1. 软 件 工 程 专 业 课 程 类 型...7 计 算 机 系 软 件 工 程 专 业 习 指 南 广 东 科 技 院 计 算 机 系 2015-9-1 软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式... 6 1. 软 件 工 程 专 业 课 程 类 型...7

More information

北京北信源软件股份有限公司招股书(申报稿)

北京北信源软件股份有限公司招股书(申报稿) qimingengz 31 创 业 板 投 资 风 险 提 示 本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

Untitled

Untitled Spring 4.0.0 spring-framework-reference QQ 413615763 Weibo le Email not-three@foxmail.com 2013.12.16 2.2 2013.12.17 2.3 : 2013.12.18 2.3 : 2013.12.18 2.3 :- Commons Logging Spring Spring Spring IoC StrutsHibernate

More information

PowerPoint Presentation

PowerPoint Presentation 数 字 化 校 园 信 息 平 台 解 决 方 案 杭 州 正 方 电 子 工 程 有 限 公 司 2007.10 杭 州 正 方 电 子 工 程 有 限 公 司 简 介 正 方 公 司 成 立 于 1999 年 1 月 份, 现 有 员 工 170 多 名, 是 经 相 关 机 构 认 定 的 高 新 技 术 企 业 软 杭 件 企 州 业 正, 取 方 得 电 计 算 子 机 工 软 件 程 著

More information

IoC容器和Dependency Injection模式.doc

IoC容器和Dependency Injection模式.doc IoC Dependency Injection /Martin Fowler / Java Inversion of Control IoC Dependency Injection Service Locator Java J2EE open source J2EE J2EE web PicoContainer Spring Java Java OO.NET service component

More information

目 录 目 录... 2 1 平 台 概 述... 3 2 技 术 架 构... 4 3 技 术 特 点... 7 3.1 基 于 统 一 平 台 的 多 产 品 线 支 撑... 7 3.2 先 进 性... 7 3.3 安 全 性... 7 3.4 开 放 性... 8 3.5 高 性 能 和

目 录 目 录... 2 1 平 台 概 述... 3 2 技 术 架 构... 4 3 技 术 特 点... 7 3.1 基 于 统 一 平 台 的 多 产 品 线 支 撑... 7 3.2 先 进 性... 7 3.3 安 全 性... 7 3.4 开 放 性... 8 3.5 高 性 能 和 致 远 协 同 管 理 软 件 V5 平 台 白 皮 书 北 京 致 远 协 创 软 件 有 限 公 司 2014 年 6 月 1 / 20 目 录 目 录... 2 1 平 台 概 述... 3 2 技 术 架 构... 4 3 技 术 特 点... 7 3.1 基 于 统 一 平 台 的 多 产 品 线 支 撑... 7 3.2 先 进 性... 7 3.3 安 全 性... 7 3.4 开 放

More information



 服 务 类 采 购 公 开 招 标 文 件 项 目 名 称 : 广 东 环 境 保 护 工 程 职 业 学 院 教 育 信 息 系 统 软 件 采 购 项 目 广 东 环 境 保 护 工 程 职 业 学 院 发 布 日 期 :2015 年 8 月 28 日 目 录 第 一 部 分 投 标 邀 请 函...3 第 二 部 分 采 购 项 目 内 容...7 第 三 部 分 投 标 人 须 知...26

More information

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind 企 业 信 息 表 公 司 名 称 : 中 铁 信 安 ( 北 京 ) 信 息 安 全 技 术 有 限 公 司 公 司 性 质 : 国 企 控 股 公 司 规 模 : 100 人 左 右 所 属 行 业 : 互 联 网 计 算 机 软 件 招 聘 人 数 :12 工 作 地 点 : 北 京 市 海 淀 区 公 司 能 够 提 供 的 福 利 : 五 险 一 金 晋 升 旅 游 节 假 日 礼 物 加

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 Shenzhen WitSoft Information Technology Co., Ltd. 主 办 券 商 二 〇 一 六 年 二 月 声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本

More information

FAQ -PowerDesigner9.5.DOC

FAQ -PowerDesigner9.5.DOC PowerDesigner 9.5 FAQ 1. PowerDesigner PowerDesigner PowerDesigner (CASE Tool,Computer Aided Software Engineering) PowerDesigner 1989 9.5 2. PowerDesigner PowerDesigner Internet ( Java) PowerDesigner 7.0

More information

1. 2. Flex Adobe 3.

1. 2. Flex Adobe 3. 1. 2. Flex Adobe 3. Flex Adobe Flex Flex Web Flex Flex Flex Adobe Flash Player 9 /rich Internet applications/ria Flex 1. 2. 3. 4. 5. 6. SWF Flash Player Flex 1. Flex framework Adobe Flex 2 framework RIA

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

附件3:

附件3: 目 录 第 一 部 分 主 体 部 分... 1 一 专 业 建 设 发 展 情 况... 1 二 专 业 培 养 目 标... 4 三 就 业 面 向... 7 四 毕 业 要 求... 10 五 课 程 体 系 与 核 心 课 程... 10 六 实 践 教 学 基 本 要 求... 16 七 教 学 及 课 程 安 排... 21 八 继 续 专 业 学 习 深 造 建 议... 25 九 其

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型 文 章 编 号 :1007-757X(2012)1-0036-04 领 域 驱 动 模 型 的 WEB 软 件 系 统 设 计 研 究 摘 要 : J2EE 3 JDK1.7 Tomcat WEB 关 键 词 : 中 图 分 类 号 :TP311 文 献 标 志 码 :A 0 引 言 Web 软 件 系 统 的 分 层 结 构 典 型 的 J2EE 软 件 系 统 开 发 方 法 分 为 三 层 结

More information

Microsoft Word - 王彬_已修改_.doc

Microsoft Word - 王彬_已修改_.doc 第 39 卷 第 1 期 应 用 科 技 Vol.39, No.1 2012 年 2 月 Applied Science and Technology Feb. 2012 doi:10.3969/j.issn.1009-671x.201110009 基 于 J2EE 网 络 教 学 系 统 的 设 计 与 实 现 李 静 梅, 王 彬, 彭 晴 晴 哈 尔 滨 工 程 大 学 计 算 机 科 学 与

More information

<4D6963726F736F667420576F7264202D2031A3AD4A617661BCBCCAF5CAC6CDB7D5FDBEA22E646F63>

<4D6963726F736F667420576F7264202D2031A3AD4A617661BCBCCAF5CAC6CDB7D5FDBEA22E646F63> Java 技 术 的 势 头 正 劲 清 华 大 学 计 算 机 科 学 与 技 术 系 李 涓 子 徐 鹏 王 克 宏 Java 技 术 已 经 遍 布 世 界 各 个 角 落, 从 智 能 卡 Java 手 机 和 电 话, 到 汽 车 生 产 以 至 于 控 制 火 星 漫 游 者 号 的 临 界 任 务 系 统 都 能 看 到 它 的 作 用,Java 已 经 成 为 一 种 普 遍 深 入

More information

序号:001

序号:001 第 一 组 选 题 简 介 序 号 :001 题 目 : 基 于 BPEL 的 网 上 订 餐 系 统 的 设 计 与 实 现 网 上 订 餐 系 统 是 在 互 联 网 上 进 行 菜 单 信 息 发 布 网 上 订 餐 以 及 维 护 客 户 关 系 的 电 子 商 务 系 统, 餐 饮 企 业 可 以 通 过 这 个 电 子 商 务 系 统 发 布 自 己 的 菜 单 信 息 以 供 客 户

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

计 算 机 系 统 应 用 http://www.c-s-a.org.cn 2016 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于

计 算 机 系 统 应 用 http://www.c-s-a.org.cn 2016 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于 1 线 程 池 技 术 在 考 试 系 统 中 的 应 用 葛 萌 1, 于 博 2, 欧 阳 宏 基 ( 咸 阳 师 范 学 院 信 息 工 程 学 院, 咸 阳 712000) ( 河 南 建 筑 职 业 技 术 学 院 信 息 工 程 系, 郑 州 450064) 1 摘 要 : 当 较 大 规 模 客 户 端 并 发 请 求 服 务 器 端 应 用 程 序 时, 传 统 的 为 每 个 请

More information

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To PowerDesigner Applying PowerDesigner CASE Tool in OOAD albertchung@mpinfo.com.tw PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE Tool PowerDesigner CASE Tool CASE Tool PowerDesignerUnified ProcessUMLing

More information

國家圖書館典藏電子全文

國家圖書館典藏電子全文 EAI EAI Middleware EAI 3.1 EAI EAI Client/Server Internet,www,Jav a 3.1 EAI Message Brokers -Data Transformation Business Rule XML XML 37 3.1 XML XML XML EAI XML 1. XML XML Java Script VB Script Active

More information

<4D6963726F736F667420576F7264202D20B9FABCD2BBFAB9D8B0ECB9ABBDA8D6FEBACDB4F3D0CDB9ABB9B2BDA8D6FEC4DCBAC4BCE0B2E2CFB5CDB3C8EDBCFEBFAAB7A2D6B8B5BCCBB5C3F7CAE92E646F63>

<4D6963726F736F667420576F7264202D20B9FABCD2BBFAB9D8B0ECB9ABBDA8D6FEBACDB4F3D0CDB9ABB9B2BDA8D6FEC4DCBAC4BCE0B2E2CFB5CDB3C8EDBCFEBFAAB7A2D6B8B5BCCBB5C3F7CAE92E646F63> 附 件 : 国 家 机 关 办 公 建 筑 和 大 型 公 共 建 筑 能 耗 监 测 系 统 软 件 开 发 指 导 说 明 书 住 房 和 城 乡 建 设 部 二 〇 〇 九 年 二 月 前 言 为 指 导 各 地 国 家 机 关 办 公 建 筑 和 大 型 公 共 建 筑 能 耗 监 测 系 统 建 设, 住 房 和 城 乡 建 设 部 组 织 有 关 专 家, 在 总 结 吸 收 国 内 已

More information

<4D6963726F736F667420576F7264202D20C8EDBCFEA1B232303130A1B33136BAC5A3BAB9D8D3DAB7A2B2BC32303130C4EAC8EDBCFEB9A4B3CCCAB5D1B5D6AED0A3C4DABFC6D1D0CFEEC4BFB5C4CDA8D6AA2E646F63>

<4D6963726F736F667420576F7264202D20C8EDBCFEA1B232303130A1B33136BAC5A3BAB9D8D3DAB7A2B2BC32303130C4EAC8EDBCFEB9A4B3CCCAB5D1B5D6AED0A3C4DABFC6D1D0CFEEC4BFB5C4CDA8D6AA2E646F63> 附 件 4 软 件 学 院 第 六 届 软 件 创 新 设 计 大 赛 专 题 项 目 项 目 1 指 导 老 师 : 林 倞 潘 炎 曾 坤 项 目 ( 课 题 ) 名 称 : 基 于 GraphCut 算 法 的 快 速 图 像 分 割 技 术 图 像 分 割 是 图 像 处 理 的 基 本 技 术 之 一, 也 是 图 像 分 析 的 最 基 本 的 步 骤, 作 为 计 算 机 视 觉 的

More information

RunPC2_.doc

RunPC2_.doc PowerBuilder 8 (5) PowerBuilder Client/Server Jaguar Server Jaguar Server Connection Cache Thin Client Internet Connection Pooling EAServer Connection Cache Connection Cache Connection Cache Connection

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘 ITE 資 訊 專 業 人 員 鑑 定 資 料 庫 系 統 開 發 與 設 計 實 務 試 卷 編 號 :IDS101 注 意 事 項 一 本 測 驗 為 單 面 印 刷 試 題, 共 計 十 三 頁 第 二 至 十 三 頁 為 四 十 道 學 科 試 題, 測 驗 時 間 90 分 鐘 : 每 題 2.5 分, 總 測 驗 時 間 為 90 分 鐘 二 執 行 CSF 測 驗 系 統 -Client

More information

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1 政 府 采 购 招 标 文 件 ( 服 务 类 ) 第 二 册 项 目 编 号 :SDGP2016-224 项 目 名 称 : 公 共 法 律 服 务 系 统 开 发 项 目 包 号 :A1 山 东 省 省 级 机 关 政 府 采 购 中 心 目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目

More information

LiveBOS产品白皮书

LiveBOS产品白皮书 面 向 对 象 的 业 务 支 撑 平 台 与 建 模 工 具 * 实 现 应 您 所 需, 随 时 而 变 的 应 用 * 业 务 管 理 应 用 软 件 最 佳 选 择 * LiveBOS 产 品 白 皮 书 LiveBOS 产 品 白 皮 书 福 建 顶 点 软 件 股 份 有 限 公 司 www.livebos.com Copyright c 1996-2009 版 权 所 有 福 建 顶

More information

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074> 软 件 架 构 师 研 修 讲 座 胡 协 刚 软 件 架 构 师 UML/RUP 专 家 szjinco@public.szptt.net.cn 中 国 软 件 架 构 师 网 东 软 培 训 中 心 小 故 事 : 七 人 分 粥 当 前 软 件 团 队 的 开 发 现 状 和 面 临 的 问 题 软 件 项 目 的 特 点 解 决 之 道 : 从 瀑 布 模 型 到 迭 代 模 型 解 决 项

More information

11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与

11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与 2013 乌 鲁 木 齐 市 事 业 单 工 作 员 表 序 1 天 山 区 区 委 财 经 领 导 小 组 办 公 室 ( 金 融 工 作 办 公 室 ) 金 融 工 作 专 干 4001 C 2 不 限 不 限 硕 士 研 究 生 会 计 财 务 管 理 财 务 会 计 基 建 会 计 行 政 事 业 财 务 会 计 2 天 山 区 区 园 林 队 会 计 4002 C 1 不 限 不 限 财

More information

untitled

untitled . Version 1.0 2015 7 1. IT 1.. IBM IBM IBM WBI IBM WBI Jasdaq 3G 9 Java Hitachi Suntory Panansonic 2. IT . 10 Java Software AG (Dachieve) (Angel Engineers Inc.) 360,, Software AG XML,.,,,,.. CRM TOLO 3G

More information

weblogic

weblogic Weblogic Allen Long allen@huihoo.com http://www.huihoo.com 2004-04 1 WebLogic, WLS WLS Domain 2 Weblogic6.1 Weblogic6.1 J2EE1.2,J2EE1.3 HTTP 1.1 J2EE Connector Architecture 1.0 J2EE EJB 2.0 J2EE JDBC 2.0

More information

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S 一 個 SQL Injection 實 例 的 啟 示 頁 1 / 6 你 的 網 站 在 裸 奔 嗎? 一 個 SQL Injection 實 例 的 啟 示 作 者 : 李 明 儒 SQL Injection( 資 料 隱 碼 攻 擊 ) 問 題 早 就 不 是 什 麼 新 聞, 但 前 陣 子 在 一 個 頗 具 知 名 度 的 活 動 網 站 上, 赫 然 發 現 它 大 刺 刺 地 現 身!

More information

臺銀人壽「98年九至十一職等人員甄試」

臺銀人壽「98年九至十一職等人員甄試」 桃 園 大 眾 捷 運 公 司 104 年 度 新 進 人 員 甄 試 簡 章 執 行 單 位 : 銘 傳 大 學 地 址 : 台 北 市 士 林 區 中 山 北 路 五 段 250 號 電 話 :(02)28809748 服 務 時 間 : 週 一 至 週 五 8:10~17:00 E-mail:pr@mail.mcu.edu.tw 中 華 民 國 104 年 5 年 1 日 公 告 關 於 桃

More information

关 于 参 加 毕 业 生 供 需 见 面 会 有 关 事 项 的 公 告 为 确 保 学 校 举 办 的 毕 业 生 供 需 见 面 会 有 序 进 行, 特 就 参 会 的 有 关 事 项 公 告 如 下 : 一 本 次 招 聘 大 会 参 会 人 员 仅 为 大 学 毕 业 生 用 人 单 位 招 聘 负 责 人 以 及 大 会 工 作 人 员, 其 它 社 会 人 员 不 得 进 入 会 场

More information

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile.. WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips (dougep@us.ibm.com),, IBM Developer Technical Support Center

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

Oracle Database 10g: SQL (OCE) 的第一堂課

Oracle Database 10g: SQL (OCE) 的第一堂課 商 用 資 料 庫 的 第 一 堂 課 中 華 大 學 資 訊 管 理 系 助 理 教 授 李 之 中 http://www.chu.edu.tw/~leecc 甲 骨 文 俱 樂 部 @Taiwan Facebook 社 團 https://www.facebook.com/groups/365923576787041/ 2014/09/15 問 題 一 大 三 了, 你 為 什 麼 還 在 這

More information

LiveBOS产品白皮书

LiveBOS产品白皮书 面 向 对 象 的 业 务 支 撑 平 台 与 建 模 工 具 * 实 现 应 您 所 需, 随 时 而 变 的 应 用 * 业 务 管 理 应 用 软 件 最 佳 选 择 * LiveBOS 产 品 白 皮 书 LiveBOS 产 品 白 皮 书 福 州 顶 点 信 息 管 理 有 限 公 司 http://www.apexinfo.com.cn Copyright c 2008-2015 版 权

More information

产品手册: CA GEN r8

产品手册: CA GEN r8 产 品 手 册 : CA GEN r8 CA Gen r8 CA Gen 是 一 个 成 熟 的 模 拟 驱 动 开 发 环 境, 用 来 设 计 部 署 和 维 护 高 性 能 可 扩 缩 的 企 业 应 用 程 序 集 成 模 型 和 代 码 生 成 使 您 能 够 运 用 平 台 独 立 的 应 用 程 序 来 运 行 您 的 关 键 任 务 进 程 灵 活 的 开 发 方 法 用 来 设 计

More information

XXXXXXXX http://cdls.nstl.gov.cn 2 26

XXXXXXXX http://cdls.nstl.gov.cn 2 26 [ ] [ ] 2003-7-18 1 26 XXXXXXXX http://cdls.nstl.gov.cn 2 26 (2003-7-18) 1...5 1.1...5 1.2...5 1.3...5 2...6 2.1...6 2.2...6 2.3...6 3...7 3.1...7 3.1.1...7 3.1.2...7 3.1.2.1...7 3.1.2.1.1...8 3.1.2.1.2...10

More information

android讲座

android讲座 湖 南 卓 景 京 信 息 移 动 互 联 行 业 -- JAVA+Android 湖 南 卓 景 京 信 息 主 要 内 容 一. 移 动 互 联 网 行 业 介 绍 二.Java 和 Android 三. 行 业 前 景 和 用 人 需 求 四. 我 们 该 怎 么 做 湖 南 卓 景 京 信 息 李 海 波 ( 软 件 架 构 师 项 目 经 理 技 术 总 监 ) QQ:50859246 行

More information

(2) 标 识 构 件 活 动 首 先 需 要 获 得 系 统 的 基 本 结 构, 然 后 对 基 本 结 构 进 行 分 组, 最 后 将 基 本 结 构 进 行 打 包 成 构 件 (3) 架 构 需 求 评 审 活 动 组 织 一 个 由 系 统 涉 众 ( 用 户 系 统 分 析 师 架

(2) 标 识 构 件 活 动 首 先 需 要 获 得 系 统 的 基 本 结 构, 然 后 对 基 本 结 构 进 行 分 组, 最 后 将 基 本 结 构 进 行 打 包 成 构 件 (3) 架 构 需 求 评 审 活 动 组 织 一 个 由 系 统 涉 众 ( 用 户 系 统 分 析 师 架 2012 年 下 半 年 系 统 架 构 设 计 师 论 文 解 析 ( 总 分 75, 考 试 时 间 120 分 钟 ) 试 题 一 论 基 于 架 构 的 软 件 设 计 方 法 及 应 用 基 于 架 构 的 软 件 设 计 (Architecture-Based Software Design,ABSD) 方 法 以 构 成 软 件 架 构 的 商 业 质 量 和 功 能 需 求 等 要

More information

目錄

目錄 資 訊 素 養 線 上 教 材 單 元 五 資 料 庫 概 論 及 Access 5.1 資 料 庫 概 論 5.1.1 為 什 麼 需 要 資 料 庫? 日 常 生 活 裡 我 們 常 常 需 要 記 錄 一 些 事 物, 以 便 有 朝 一 日 所 記 錄 的 事 物 能 夠 派 得 上 用 場 我 們 能 藉 由 記 錄 每 天 的 生 活 開 銷, 就 可 以 在 每 個 月 的 月 底 知

More information

Learning Java

Learning Java Java Introduction to Java Programming (Third Edition) Prentice-Hall,Inc. Y.Daniel Liang 2001 Java 2002.2 Java2 2001.10 Java2 Philip Heller & Simon Roberts 1999.4 Java2 2001.3 Java2 21 2002.4 Java UML 2002.10

More information

D C 93 2

D C 93 2 D9223468 3C 93 2 Java Java -- Java UML Java API UML MVC Eclipse API JavadocUML Omendo PSPPersonal Software Programming [6] 56 8 2587 56% Java 1 epaper(2005 ) Java C C (function) C (reusability) eat(chess1,

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

第03章 控制反转(Spring IoC)

第03章  控制反转(Spring IoC) 3 Spring IoC GoF Design Patterns: Elements of Reusable Object-Oriented Software Programming to an Interface not an Implementation Java Java Java GoF Service Locator IoC IoC Spring IoC 3.1 IoC IoC IoC Dependency

More information

FileMaker 16 ODBC 和 JDBC 指南

FileMaker 16 ODBC 和 JDBC 指南 FileMaker 16 ODBC JDBC 2004-2017 FileMaker, Inc. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc. FileMaker WebDirect FileMaker Cloud FileMaker,

More information

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63> 基 于 Android 平 台 的 电 子 拍 卖 系 统 摘 要 本 电 子 拍 卖 系 统 其 实 就 是 一 个 电 子 商 务 平 台, 只 要 将 该 系 统 部 署 到 互 联 网 上, 客 户 都 可 以 在 该 系 统 上 发 布 想 出 售 的 商 品, 也 可 以 对 拍 卖 中 的 商 品 参 与 竞 价 整 个 过 程 无 须 人 工 干 预, 由 系 统 自 动 完 成 本

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

untitled

untitled PortalAge Infrastructure v2.0 Infrastructure 2.0 PortalAge Infrastructure 2.0 Infrastructure 2.0 Infrastructure 2.0 Infrastructure 2.0 PortalAge Infrastructure Framework Framework PortalAge Infrastructure

More information

RunPCPB8 new feature.PDF

RunPCPB8 new feature.PDF Client/Server Web N-Tier PowerBuilder 8.0 PowerBuilder 8.0 IDE Client/Server Web PowerBuilder / Web-based IT IDE PowerBuilder PowerBuilder 8.0 PowerBuilder 8.0 PowerBuilder 8.0 PowerBuilder Sybase PowerBuilder

More information

untitled

untitled http://idc.hust.edu.cn/~rxli/ 1.1 1.2 1.3 1.4 1.5 1.6 2 1.1 1.1.1 1.1.2 1.1.3 3 1.1.1 Data (0005794, 601,, 1, 1948.03.26, 01) (,,,,,) 4 1.1.1 Database DB 5 1.1.1 (DBMS) DDL ( Create, Drop, Alter) DML(

More information

untitled

untitled Data Source 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 8-1 Data Source 8-2 Data Source 8-3 Data Source 8-4 Data Source 8-5 DataSourceID 8-6 DataSourceMode 8-7 DataSource 8-8 8-9 Parameter Direction

More information

序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开 发 专 业 的 特 点 设 置 课 程 体 系, 体 现 了 课 程 为 市 场 服 务 的 特 点 本 专 业 要 求 学

序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开 发 专 业 的 特 点 设 置 课 程 体 系, 体 现 了 课 程 为 市 场 服 务 的 特 点 本 专 业 要 求 学 广 东 新 安 职 业 技 术 学 院 计 算 机 移 动 应 用 开 发 专 业 2016 级 人 才 培 养 方 案 专 业 方 向 负 责 人 : 梅 红 系 主 任 : 毛 立 冰 计 算 机 系 二 一 五 年 六 月 序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开

More information

2 Requirements Documentation Doc Name Doc No. 1.0 Version No. Total Page Generated By V6.0.0 Generated Date 2011/10/21 Checked By Checked Date 2011/10

2 Requirements Documentation Doc Name Doc No. 1.0 Version No. Total Page Generated By V6.0.0 Generated Date 2011/10/21 Checked By Checked Date 2011/10 1 2 Requirements Documentation Doc Name Doc No. 1.0 Version No. Total Page Generated By V6.0.0 Generated Date 2011/10/21 Checked By Checked Date 2011/10/26 Approved By Approved Date Version Modification

More information

内 容 协 作 平 台 TRS WCM 6.5 北 京 拓 尔 思 信 息 技 术 股 份 有 限 公 司 Beijing TRS Information Technology Co., Ltd 版 权 说 明 本 手 册 由 北 京 拓 尔 思 信 息 技 术 股 份 有 限 公 司 ( 以 下 简 称 TRS 公 司 ) 出 版, 版 权 属 TRS 公 司 所 有 未 经 出 版 者 正 式

More information

Java 1 Java String Date

Java 1 Java String Date JAVA SCJP Java 1 Java String Date 1Java 01 Java Java 1995 Java Java 21 Java Java 5 1-1 Java Java 1990 12 Patrick Naughton C++ C (Application Programming Interface API Library) Patrick Naughton NeXT Stealth

More information

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID 58 2016. 14 * LireSolr LireSolr CEDD Ajax CSpace LireSolr CEDD Abstract In order to offer better image support services it is necessary to extend the image retrieval function of our institutional repository.

More information

jsp

jsp JSP Allen Long Email: allen@huihoo.com http://www.huihoo.com 2004-04 Huihoo - Enterprise Open Source http://www.huihoo.com 1 JSP JSP JSP JSP MVC Huihoo - Enterprise Open Source http://www.huihoo.com 2

More information

untitled

untitled rxli@public.wh.hb.cn http://idc.hust.edu.cn/~rxli/ 2 3 ( ) (Distributed System) Integrated System () 4 5 6 System Integration 7 8 Integrated System 9 1.1 CIMS IDEF CSCW STEP MIS MRPII ERP CRM SCM MIS:

More information

JBuilder Weblogic

JBuilder Weblogic JUnit ( bliu76@yeah.net) < >6 JUnit Java Erich Gamma Kent Beck JUnit JUnit 1 JUnit 1.1 JUnit JUnit java XUnit JUnit 1.2 JUnit JUnit Erich Gamma Kent Beck Erich Gamma Kent Beck XP Extreme Programming CRC

More information

untitled

untitled 1 Access 料 (1) 立 料 [] [] [ 料 ] 立 料 Access 料 (2) 料 [ 立 料 ] Access 料 (3) 料 料 料 料 料 料 欄 ADO.NET ADO.NET.NET Framework 類 來 料 料 料 料 料 Ex MSSQL Access Excel XML ADO.NET 連 .NET 料.NET 料 料來 類.NET Data Provider

More information

温州市政府分散采购

温州市政府分散采购 温 州 市 政 府 分 散 采 购 招 标 文 件 招 标 编 号 :F - G B 2 0 1 6 0 3 1 4 0 0 4 7 招 标 项 目 : 温 州 市 人 民 政 府 办 公 室 政 务 云 平 台 ( 重 ) 招 标 方 式 : 公 开 招 标 招 标 人 : 温 州 市 人 民 政 府 办 公 室 招 标 代 理 : 二 〇 一 六 年 三 月 目 录 投 标 保 证 金 办 理

More information

目 录 第 五 部 分 报 价 邀 请 第 六 部 分 供 应 商 须 知 附 表 第 七 部 分 评 审 方 法 和 评 分 细 则 第 八 部 分 项 目 需 求 和 服 务 方 案 要 求 1

目 录 第 五 部 分 报 价 邀 请 第 六 部 分 供 应 商 须 知 附 表 第 七 部 分 评 审 方 法 和 评 分 细 则 第 八 部 分 项 目 需 求 和 服 务 方 案 要 求 1 竞 争 性 磋 商 文 件 项 目 编 号 :SDSM2016-3029 第 二 册 山 东 三 木 招 标 有 限 公 司 二 〇 一 六 年 二 月 1 目 录 第 五 部 分 报 价 邀 请 第 六 部 分 供 应 商 须 知 附 表 第 七 部 分 评 审 方 法 和 评 分 细 则 第 八 部 分 项 目 需 求 和 服 务 方 案 要 求 1 第 五 部 分 报 价 邀 请 山 东 三

More information

天津天狮学院关于修订2014级本科培养方案的指导意见

天津天狮学院关于修订2014级本科培养方案的指导意见 目 录 天 津 天 狮 院 关 于 修 订 2014 级 本 科 培 养 方 案 的 指 导 意 见...1 金 融 类 专 业...9 金 融 专 业 培 养 方 案...9 保 险 专 业 培 养 方 案...14 人 力 资 源 管 理 专 业 培 养 方 案...19 劳 动 与 社 会 保 障 专 业 培 养 方 案...24 工 商 管 理 类 专 业...29 市 场 营 销 专 业

More information

1

1 PRIMETON TECHNOLOGIES, LTD. EOS EOS Manager No part of this document may be reproduced, stored in any electronic retrieval system, or transmitted in any form or by any means, mechanical, photocopying,

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

Oracle JDeveloper 10g Overview

Oracle JDeveloper 10g Overview Oracle JDeveloper 10g Overview Roel Stalman Senior Director Tools Product Management Oracle Corporation Accelerate Development and Deployment of SOA Integrate Develop Orchestrate Deploy Access Secure Manage

More information

发现一:全国医院信息化发展不平衡

发现一:全国医院信息化发展不平衡 大 会 论 文 集 1 目 录 医 院 信 息 系 统 建 设 PACS/RIS 与 HIS 紧 密 集 成 设 计 及 应 用 陈 映 楠 等 (4) 输 血 管 理 信 息 系 统 的 应 用 与 实 现 张 晓 东 等 (7) 医 院 信 息 化 与 信 息 化 思 维 熊 志 强 (10) 医 院 院 内 会 诊 系 统 的 设 计 与 应 用 李 建 鹏 等 (13) 电 子 病 历 在

More information

untitled

untitled Work Managers 什 Work Managers? WebLogic Server 9.x 行 (thread) 理 thread pool 數量 立 execute queues 來 量 理 thread count, thread priority 參數 理 thread pool 數量? WebLogic Server 9.x 理 行 (thread) (self-tuning) 句

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

创业板投资风险提示:本次股票发行后拟在创业板市场上市,该市场具有较高的投资风险

创业板投资风险提示:本次股票发行后拟在创业板市场上市,该市场具有较高的投资风险 创 业 板 投 资 风 险 提 示 : 本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及 本 公 司 所 披 露

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

ASP 電子商務網頁設計

ASP 電子商務網頁設計 Flash Flash CSIE, NTU December 22, 2007 Outline & Flash National Taiwan University December 22, 2007 Page 2 Outline & Flash National Taiwan University December 22, 2007 Page 3 Course Introduction (1/3)

More information

支付宝2011年 IT资产与费用预算

支付宝2011年 IT资产与费用预算 OceanBase 支 持 ACID 的 可 扩 展 关 系 数 据 库 qushan@alipay.com 2013 年 04 月 关 系 数 据 库 发 展 1970-72:E.F.Codd 数 据 库 关 系 模 式 20 世 纨 80 年 代 第 一 个 商 业 数 据 库 Oracle V2 SQL 成 为 数 据 库 行 业 标 准 可 扩 展 性 Mainframe: 小 型 机 =>

More information

30 2008,2(1) 基 礎 上, 各 種 數 據 均 以 圖 形 化 方 式 表 達, 因 此 各 級 分 析 結 果 均 可 以 隨 時 檢 驗 另 外, 由 於 系 統 是 以 網 站 形 式 發 佈, 任 何 用 戶 均 可 通 過 網 絡 查 詢 瀏 覽 系 統 中 的 數 據, 因

30 2008,2(1) 基 礎 上, 各 種 數 據 均 以 圖 形 化 方 式 表 達, 因 此 各 級 分 析 結 果 均 可 以 隨 時 檢 驗 另 外, 由 於 系 統 是 以 網 站 形 式 發 佈, 任 何 用 戶 均 可 通 過 網 絡 查 詢 瀏 覽 系 統 中 的 數 據, 因 第 2 卷 第 1 期 澳 門 科 技 大 學 學 報 Vol.2 No.1 2008 年 6 月 30 日 Journal of Macau University of Science and Technology June 30, 2008 29 月 球 探 測 數 據 實 時 管 理 系 統 的 開 發 朱 紅 岷 **, 祝 夢 華, 劉 良 鋼 *, 許 敖 敖 ( 澳 門 科 技 大 學

More information

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466> packages 3-31 PART 3-31 03-03 ASP.NET ASP.N MVC ASP.NET ASP.N MVC 4 ASP.NET ASP.NE MVC Entity Entity Framework Code First 2 TIPS Visual Studio 20NuGetEntity NuGetEntity Framework5.0 CHAPTER 03 59 3-3-1

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 导 你 搭 建 Linux 平 台 下 的 JAVA 开 发 环 境, 包 括 JDK 以 及 集

More information

目 录 1. 前 言... 1 2. 为 什 么 要 用 ESB... 1 2.1. 技 术 发 展... 1 2.2. 业 务 需 求... 3 2.3. IT 需 求... 4 2.4. IT 与 业 务 一 致 性 要 求... 5 3. TongIntegrator ESB v5 简 介..

目 录 1. 前 言... 1 2. 为 什 么 要 用 ESB... 1 2.1. 技 术 发 展... 1 2.2. 业 务 需 求... 3 2.3. IT 需 求... 4 2.4. IT 与 业 务 一 致 性 要 求... 5 3. TongIntegrator ESB v5 简 介.. TongTech TongIntegrator ESB v5 ( 简 称 TongESB v5) 产 品 白 皮 书 北 京 东 方 通 科 技 公 司 2015 年 目 录 1. 前 言... 1 2. 为 什 么 要 用 ESB... 1 2.1. 技 术 发 展... 1 2.2. 业 务 需 求... 3 2.3. IT 需 求... 4 2.4. IT 与 业 务 一 致 性 要 求...

More information

( 试 行 ) 中 国 城 市 科 学 研 究 会 数 字 城 市 工 程 研 究 中 心 二 〇 一 三 年 四 月 目 录 引 言... 1 1 范 围... 1 2 规 范 性 引 用 文 件... 1 3 术 语 定 义 与 缩 略 语... 2 3.1 术 语 与 定 义... 2 3.2 缩 略 语... 2 4 平 台 定 位... 2 4.1 智 慧 城 市 总 体 框 架...

More information

untitled

untitled II III IV V VI VII VIII IX 2 ASP 1 ASP 3 4 ASP Web CGI ISAPI OLEISAPI Perl IDC ASP dbweb Perl IDC ASP dbweb IDC 1 ASP 5 Web Web DLL 6 ASP 1 ASP 7 8 ASP 1 ASP 9 10 ASP 1 ASP 11 12 ASP 1 ASP 13 14 ASP 1

More information

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 ( 申 报 稿 ) 主 办 券 商 二 〇 一 五 年 十 月 声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的 负 责 人 会 计 机 构

More information

(CIP) Web /,. :,2005. 1 ISBN 7 81058 782 X.W............T P393.4 CIP (2004) 118797 Web ( 99 200436) ( http:/ / www.shangdapress.com 66135110) : * 787

(CIP) Web /,. :,2005. 1 ISBN 7 81058 782 X.W............T P393.4 CIP (2004) 118797 Web ( 99 200436) ( http:/ / www.shangdapress.com 66135110) : * 787 Web (CIP) Web /,. :,2005. 1 ISBN 7 81058 782 X.W............T P393.4 CIP (2004) 118797 Web ( 99 200436) ( http:/ / www.shangdapress.com 66135110) : * 787 1092 1/ 16 30.75 748 2005 1 1 2005 1 1 : 1 3 100

More information