4.应用系统统一开发平台(SG-UAP)V1.1培训_快速开发-平台服务端应用开发20130228_第1页
4.应用系统统一开发平台(SG-UAP)V1.1培训_快速开发-平台服务端应用开发20130228_第2页
4.应用系统统一开发平台(SG-UAP)V1.1培训_快速开发-平台服务端应用开发20130228_第3页
4.应用系统统一开发平台(SG-UAP)V1.1培训_快速开发-平台服务端应用开发20130228_第4页
4.应用系统统一开发平台(SG-UAP)V1.1培训_快速开发-平台服务端应用开发20130228_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

应用系统统一开发平台 SG UAP 培训服务端应用开发 2020年4月 目录 2 注解介绍 引言 课程目标 3 课程目标 熟练掌握服务端的开发 了解服务端框架 熟练使用rest请求 熟练使用注解进行数据转换 了解并熟悉服务端的层次结构 熟练服务端的定制与扩展开发 目录 4 注解介绍 5 服务端框架概述 目录 6 注解介绍 7 控制层主要是与前端进行交互 在控制层中定义与前端约定的请求URL地址 参数和请求方法 映射到具体控制类和方法中 接收前端请求 将请求数据拦截通过注解将数据翻译为后台理解的信息 执行相应操作后将返回值翻译为前端理解信息返回给前端显示 控制层Controller 平台的逻辑层主要是编写逻辑构件 一个逻辑构件是由接口 实现类和配置文件组成 逻辑构件在控制层中调用 将逻辑构件注入到逻辑层 逻辑层Bizc 平台的持久层提供统一的接口IHibernateDao 接口中封装一系列的持久化方法 逻辑层中调用持久层的方法完成对业务的逻辑操作 持久层 服务端分层介绍 目录 8 注解介绍 REST介绍 9 REST介绍 10 11 REST介绍 目录 12 注解介绍 注解介绍 13 注解基本介绍Annotation 注解 是JDK5 0及以后版本引入的 它可以用于创建文档 跟踪代码中的依赖性 甚至执行基本编译时检查 注解是以 注解名 在代码中存在的 根据注解参数的个数 我们可以将注解分为 标记注解 单值注解 完整注解三类 它们都不会直接影响到程序的语义 只是作为注解 标识 存在 我们可以通过反射机制编程实现对这些元数据的访问 另外 你可以在编译时选择代码里的注解是否只存在于源代码级 或者它也能在class文件中出现 注解介绍 14 注解定义注解定义很简单 Target ElementType PARAMETER public interfaceTest 使用时以 Test方式标记在方法体 类或参数上 Target ElementType PARAMETER 可以定义注解的标记类型 注解介绍 15 常用SPRING注解 1 Controller Controller注解将一个类标明为用来接收HTTP请求控制器2 RequesMapping RequestMapping注解将特定的URL和具体的控制器类或控制类类中的方法绑定3 PathVariable添加 PathVariable注解 可以直接在方法中使用请求URI中的值 注解介绍 16 4 Repository用于将数据访问层 DAO层 的类标识为SpringBean 具体只需将该注解标注在DAO类上即可 同时 为了让Spring能够扫描类路径中的类并识别出 Repository注解 需要在XML配置文件中启用Bean的自动扫描功能 这可以通过如此 我们就不再需要在XML中显式使用进行Bean的配置 Spring在容器初始化时将自动扫描base package指定的包及其子包下的所有class文件 所有标注了 Repository的类都将被册为SpringBean 常用SPRING注解 服务端基本开发 17 服务端使用的注解介绍平台提供了一些注解 用于封装前台传递的数据和返回给前台的数据 简化开发 与前端约定返回的数据格式为 successful true resultValue resultHint ColumnResponseBody ItemRequestParam ItemsRequestParam QueryRequestParam 注解介绍 18 控制层使用的注解介绍 ColumnRequestParam 作用 参数注解 com sgcc uap rest annotation ColumnRequestParam请求体是 columns id name 的形式 指明方法的参数是从请求体中获取的字符串数组 用于在获取元数据信息时 从请求体获取显示的列 并将列名封装为字符串数组 例如 例如 请求参数为params columns id name sex 返回数据为 String id name sex 使用示例 RequestMapping meta public ColumnResponseBodyListgetMetaData ColumnRequestParam params String columns 注解介绍 19 ColumnResponseBody 作用 方法体注解 对返回值进行拦截 拦截List类型的返回值 将返回值解析为JSON格式字符串 如 columns name id caption 编号 length 32 com sgcc uap rest annotation ColumnResponseBody响应体是 columns 的形式 指明将方法返回值转化为JSON格式列信息 将返回的对象转换为json串 返回对象为ViewAttributeData 返回数据格式为 columns name id caption ID nullable false dataType string 注解介绍 20 IdRequestBody 作用 参数注解 拦截请求体为 params primaryKey EMP ID ids 001 002 格式的数据 将此数据转换为字符串数组 如 0001 0002 com sgcc uap rest annotation IdRequestBody指明方法的参数是从请求体中获取的字符串数组 并将主键信息封装为IDRequestObject对象 通过getPrimarykey 和getIds 取出主键名称和主键值例如 用于删除操作从请求体中获取主键public VoidResponseBodyObjectdelete IdRequestBodyIDRequestObjectid 注解介绍 21 控制层使用的注解介绍 ItemRequestParam 作用 参数注解 com sgcc uap rest annotation ItemRequestParam拦截请求数据 itemType school 将数据的itemType解析 返回字符串 例如返回 school 该注解用于在树场景中取出节点的itemType 使用示例 public TreeResponseBodyListgetNodes PathVariableStringid ItemRequestParam params StringitemType 服务端定制 客户端定制 注解介绍 22 ItemsRequestBody 作用 参数注解 com sgcc uap rest annotation ItemsRequestBody拦截请求体的数据格式 items id 01 name n1 和 parentID 0003329281 items id 01 name n1 将数据转化为List格式 list中map封装一个item数据使用示例 用于保存场景 将请求体中的记录封装为到list中 public ItemResponseBodyListsaveSchool ItemsRequestBodyListlist 注解介绍 23 ItemsResponseBody 作用 方法体注解 拦截返回数据 将返回的list集合转化为json字符串 items id 01 name n1 itemCount 100 com sgcc uap rest annotation ItemResponseBody拦截返回数据 将返回的list集合转化为json字符串 指明返回值将以 items 的形式返回 使用示例 public ItemResponseBodyQueryResultObjectquery QueryRequestParam params RequestConditionparams 注解介绍 24 控制层使用的注解介绍 QueryRequestParam 作用 参数注解 com sgcc uap rest annotation QueryRequestParamGET请求中从url中通过指定KEY值将参数取出 用于查询条件 QueryRequestParam params 将url中的 params filter name eqe sex female orderStr age columns id name age sex 转换为RequestCondition对象 使用实例 public ItemResponseBodyQueryResultObjectquery QueryRequestParam params RequestConditionparams 注解介绍 25 TreeResponseBody 作用 方法体注解 拦截返回值List 将list集合转换为json字符串 node id 01 text root hasChild true com sgcc uap rest annotation TreeResponseBody返回树节点 该注解将节点信息的list集合转换为如下json格式 nodes id 001 text dddd hasChild true itemType department imgUrl null 使用示例 获取节点信息的方法 public TreeResponseBodyListgetNodes PathVariableStringid ItemRequestParam params StringitemType 注解介绍 26 控制层使用的注解介绍 RawResponseBody 作用 方法体注解 拦截返回值 对于字符串类型的返回值可以原样输出 对于List或对象类型的返回值转换为响应的json字符串输出 方便用户封装自定义的格式 com sgcc uap rest annotation RawResponseBody指明方法的返回值应当以原生返回值的形式 绑定到响应体中 使用该注解的方法应当返回object 使用示例 将方法中返回的字符串原样输出 用于自己拼装返回的格式 不用平台的json转换 public RawResponseBodyObjecttest return welcome 示例中的方法将字符串 welcome 原样返回 注解介绍 27 VoidResponseBody 作用 将空返回值包装为通用的返回格式 com sgcc uap rest annotation VoidResponseBody用于没有特定返回值得方法注解 将对象转换为统一的json串 如 successful true 方法是否调用成功 resultHint 异常信息 resultValue 数据信息是空的 例如 删除操作public VoidResponseBodyObjectdelete IdRequestBodyIDRequestObjectid 目录 28 注解介绍 服务端定制 29 PO对象 是服务端的实体类 与VO对象相对应 两者是通过 Transfer java建立关联的 PO对象的修改和定制与普通Java实体类的操作一致 代码片段如下 publicclassDeptimplementsSerializable 属性 主键ID privateStringobjId 属性 部门名称 privateStringbmmc 此处为代码省略 PO对象定制 为服务端定制PO对象类 备注 PO对象变化的同时 应同步更新VO对象 Transfer java文件和 hbm xml文件 服务端定制 30 一般而言 逻辑层采用接口 实现类 配置文件的方式来实现 在接口类中定制方法时 需要在对应的实现类中实现 代码片段如下 逻辑层定制 个性化定制逻辑构件 接口类代码示例 publicinterfaceIDeptBizc 此处为代码省略 定制输出字符串方法 publicvoidsayHello 接口实现类代码示例 publicclassDeptBizcimplementsIDeptBizc 此处为代码省略 定制返回字符串方法 publicvoidsayHello System out println Helloworld 服务端定制 31 控制层定制 个性化定制控制层代码 并遵循REST风格规范 控制层 Controller java类 代码片段如下 Controller 将java类注册成控制层类 RequestMapping dept 指明了供前端调用方法的上下文路径publicclassDeptController AutowiredprivateIDeptBizcdeptBizc 此处为代码省略 定制输出字符串方法 RequestMapping value hello method RequestMethod GET public VoidResponseBodyObjecthello deptBizc sayHello returnnull 业务代码扩展 32 自定义servlet filter 在传统的Web应用中 都是在统一的web xml中定义servlet filter 但是在模块化的环境下 因为将系统拆分成了模块 所以servlet filter的定义 也拆分到了各个模块中 如果要在模块中自定义servlet filter 需要创建一个Spring配置文件 并通过以下标签来定义 在web xml文件中定义servlet filter时 是通过前后顺序来控制servlet filter listener的处理顺序的 在模块中定义servlet filter时 首先是模块的启动顺序决定了模块中所有servlet filter的顺序 其次 如果同一个模块中servlet filter定义在不同的文件中 文件被加载解析的顺序 先是根目录中的文件 接着以递归的方式按字母顺序处理子目录以及各个子目录中的文件 也会影响模块中servlet filter的顺序 最后 模块中同一个配置文件中定义的servlet filter按被定义的前后顺序处理 服务端扩展 33 自定义servlet filter module servletfilter标签 模拟web xml中的filter标签myFiltercom sgcc uap moduleFilter sgFiltertarget

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论