注解基本介绍

Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件中出现

注解定义

注解定义很简单:

@Target(ElementType.PARAMETER)

public @interface Test {}

使用时以@Test方式标记在方法体,类或参数上。Target(ElementType.PARA

METER)可以定义注解的标记类型。

常用 SPRING注解

1.@Controller

@Controller注解将一个类标明为用来接收HTTP请求控制器

2.@RequesMapping

@RequestMapping注解将特定的URL和具体的控制器类或控制类类中的方法绑定

3.@PathVariable

添加@PathVariable注解,可以直接在方法中使用请求URI中的值。

4.@Repository

用于将数据访问层(DAO层) 的类标识为Spring Bean。具体只需将该注解标注

在 DAO类上即可。同时,为了让Spring能够扫描类路径中的类并识别出

@Repository注解,需要在XML配置文件中启用Bean的自动扫描功能,这可

以通过<context:component-scan/><context:component-scanbase-

package=”bookstore.dao”/>   如此,我们就不再需要在XML中显式使用

<bean/> 进行 Bean 的配置。Spring在容器初始化时将自动扫描base-package

指定的包及其子包下的所有class文件,所有标注了@Repository的类都将被册

为 SpringBean。

控制层使用的注解介绍

1. @ColumnRequestParam

作用:参数注解。

com.sgcc.uap.rest.annotation.ColumnRequestParam

请求体是{columns:["id","name"]}的形式,指明方法的参数是从请求体中获取的字符串数组。

用于在获取元数据信息时,从请求体获取显示的列,并将列名封装为字符串数组。

例如:请求参数为params={“columns”:[“id”,“name”,“sex”]},返回数据为:String[]{“id”,“name”,“sex”}

使用示例:@RequestMapping("/meta")

public @ColumnResponseBodyList<ViewAttributeData>getMetaData(

@ColumnRequestParam("params")String[] columns) {

…………

}

2. @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"},...]}

3. @IdRequestBody:

作用:参数注解。

拦截请求体为{params:{primaryKey: ”EMP_ID” ,  ids:[”001”, “002”,……] }}格式的数据,将此数据转换为字符串数组。如

[“0001”,”0002”]。

com.sgcc.uap.rest.annotation.IdRequestBody

指明方法的参数是从请求体中获取的字符串数组 ,并将主键信息封装为IDRequestObject对象。通过getPrimarykey()和getIds()取出主键名称和主键值

例如:用于删除操作从请求体中获取主键

public @VoidResponseBody

Object delete(@IdRequestBodyIDRequestObjectid) {

。。。。。。

}

4. @ItemRequestParam:

作用:参数注解。

com.sgcc.uap.rest.annotation.ItemRequestParam

拦截请求数据{“itemType”:”school”},将数据的itemType解析,返回字符串。例如返回:school。

该注解用于在树场景中取出节点的itemType。使用示例:

public @TreeResponseBody

List<TreeNode>getNodes(@PathVariableString id,

@ItemRequestParam("params")StringitemType){

。。。。。。

}

5. @ItemsRequestBody:

作用:参数注解。

com.sgcc.uap.rest.annotation.ItemsRequestBody

拦截请求体的数据格式:

{“items”:[{“id”:”01”,”name”:”n1”},{},{},…]}和{“parentID”:”0003329281”,“items”:[{“id”:”01”,”name”:”n1”},{},{},…]}

将数据转化为List<Map>格式,list中map封装一个item数据

使用示例:用于保存场景,将请求体中的记录封装为到list中。

public @ItemResponseBody

List<SchoolVO>saveSchool(@ItemsRequestBodyList<Map>list) {

。。。。

}

6. @ItemsResponseBody:

作用:方法体注解。

拦截返回数据。将返回的list集合转化为json字符串。

{“items”:[{“id”:”01”,”name”:”n1”},{},{},…] ,itemCount:100}

com.sgcc.uap.rest.annotation.ItemResponseBody

拦截返回数据。将返回的list集合转化为json字符串。指明返回值将以

{items:[{}{}{}{}]}的形式返回。使用示例:

public @ItemResponseBody

QueryResultObjectquery(@QueryRequestParam("params")

RequestConditionparams){

。。。。。

}

7. @QueryRequestParam:

作用:参数注解。

com.sgcc.uap.rest.annotation.QueryRequestParam

GET请求中从url中通过指定KEY值将参数取出,用于查询条件。

QueryRequestParam("params"),将url中的{"params":{"filter":"name  ='eqe'&sex='female'","orderStr":"age","columns":"id,name,age,sex"}}转换为RequestCondition对象。使用实例:

public @ItemResponseBody

QueryResultObjectquery(@QueryRequestParam("params")RequestCondition

params){

。。。。。

}

8. @QueryRequestParam:

作用:参数注解。

com.sgcc.uap.rest.annotation.QueryRequestParam

GET请求中从url中通过指定KEY值将参数取出,用于查询条件。

QueryRequestParam("params"),将url中的{"params":{"filter":"name  ='eqe'&sex='female'","orderStr":"age","columns":"id,name,age,sex"}}转换为RequestCondition对象。使用实例:

public @ItemResponseBody

QueryResultObjectquery(@QueryRequestParam("params")RequestCondition

params){

。。。。。

}

9. @RawResponseBody:

作用:方法体注解。

拦截返回值,对于字符串类型的返回值可以原样输出。

对于List或对象类型的返回值转换为响应的json字符串输出。方便用户封装自定义的格式。

com.sgcc.uap.rest.annotation.RawResponseBody

指明方法的返回值应当以原生返回值的形式,绑定到响应体中 ,使用该注解的方法应当返回object。

使用示例:将方法中返回的字符串原样输出,用于自己拼装返回的格式,不用平台的json转换。

public @RawResponseBodyObject test(){

return"welcome!";

}

示例中的方法将字符串”welcome!”原样返回。

11. @VoidResponseBody:

作用:将空返回值包装为通用的返回格式。

com.sgcc.uap.rest.annotation.VoidResponseBody

用于没有特定返回值得方法注解,将对象转换为统一的json串。如:

{

"successful":true,    ————方法是否调用成功

"resultHint":"",     ————异常信息

"resultValue": “”   ————数据信息是空的

}

例如:删除操作

public @VoidResponseBody

Object delete(@IdRequestBodyIDRequestObjectid) {

。。。。

}

Hibernate实体映射注解支持

平台已经引入了hibernate的注解功能,具体用法与hibernate注解映射相同,

详细用法可参考Hibernate注解映射相关文档。

@Entity

@Table(name= "O_ORG")

publicclass ORG implementsjava.io.Serializable{

@Id

@GenericGenerator(name="ORG_ID",strategy="uuid")

@GeneratedValue(generator="ORG_ID")

@Column(name="ORG_ID")

public String getId() {

return this.id;

}

public void setId(Stringid) {

this.id = id;

}

}

SG-UAP常用注解介绍的更多相关文章

  1. Spring常用注解介绍【经典总结】

    Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式. Spring注解方式减少了配置文件内容 ...

  2. SpringBoot | 第六章:常用注解介绍及简单使用

    前言 之前几个章节,大部分都是算介绍springboot的一些外围配置,比如日志配置等.这章节开始,开始总结一些关于springboot的综合开发的知识点.由于SpringBoot本身是基于Sprin ...

  3. [刘阳Java]_Spring常用注解介绍_第6讲

    Spring的注解是在Spring2.5的版本中引入的,目的简化XML配置.在企业开发过程中使用注解的频率非常高,但是学习注解的前提是大家一定要对Spring基于XML配置要熟悉,这是我个人建议,因为 ...

  4. springMvc之常用注解介绍

    @requestbody和@requestparam的用法  获取请求参数的方法 get请求: 直接获取request    如: public String getHtml(HttpServletR ...

  5. 【JSON 注解】JSON循环引用1-----Jackson常用注解介绍 eq:@JsonIgnore

    循环引用:实体A与实体B有关系,A中有B作为字段,B中有A作为一个字段.查询A对象后,将A对象转化为JSON格式数据时,会因为序列化过程中导致A中有B字段,B字段中又有A,这样就引起了循环引用的问题! ...

  6. Swagger2常用注解和使用方法

    一   引入maven依赖 <!--整合Swagger2--> <dependency> <groupId>com.spring4all</groupId&g ...

  7. SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍

    SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍 本篇博文将介绍几种如何处理url中的参数的注解@PathVaribale/@Requ ...

  8. 单元测试_JUnit常用单元测试注解介绍及代码演示

    JUnit常用单元测试注解介绍及代码演示   by:授客 QQ:1033553122 1. 测试环境 1 2. 基础概念 1 3. 常用Annotation 1 4. 运行环境配置 3 maven配置 ...

  9. SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍

    原文 SpringBoot 中常用注解 @Controller/@RestController/@RequestMapping介绍 @Controller 处理http请求 @Controller / ...

随机推荐

  1. ES开启慢查询日志

    默认情况,慢日志是不开启的.要开启它,需要定义具体动作(query,fetch 还是 index),你期望的事件记录等级( WARN.INFO.DEBUG.TRACE 等),以及时间阈值. es有几种 ...

  2. 荔枝派zero从焊接到跑起linux

    步骤 焊flash芯片(如果大于16M,需要改烧录工具的源码) 焊引脚,为了串口看数据 焊接flash芯片,需要注意1号脚的位置,flash芯片在开发板背面,1号脚位置是靠近麦克风的那边 以下为编译相 ...

  3. centos 6.8操作系统安装arcgis server 10.4-后续篇

    ./Setup //执行安装 (运行安装脚本后会进行安装环境检测,会检查检查软件包和主机名,检测通过才可以开始安装.)如果检查不通过,会提示和报错,并中断安装过程.(1) 解决 hostname 问题 ...

  4. cps在jenkins构建报错

    修改ares的版本号即可,改为2.0.1.14-20191126-RELEASE

  5. Playbooks简介

    Playbooks简介 关于Playbooks Playbook简单示例 基本组成 主机和用户 任务列表 Handlers: 配置更改时运行操作 执行Playbook Ansible-Pull Lin ...

  6. 使用自定义注解和AOP管理shiro权限

    一.场景 在使用shiro框架的时候,遇到了这样的需求:本系统有多个用户,每个用户分配不同角色,每个角色的权限也不一致.比如A用户拥有新闻列表的增删改查权限,而B用户只有查看新闻列表的权限,而没有删除 ...

  7. Dev系列控件的AJAX使用Demo

    一.Dev Data Edit控件通用属性以及方法: 属性 1.GetEnabled():返回控件是否为可操作状态 2.GetText():返回控件的Text的值 3.SetEnabled():设置控 ...

  8. 第1部分 Elasticsearch基础

    一.安装 es端口:9200 kibana端口:5601 brew install elasticsearch brew install elasticsearch brew services sta ...

  9. WebDriver常用的api

    WebDriver常用的api 获取window对象 Window window = driver.manage().window(); 1)  窗口最大化 Maximize() 2)  窗口大小 g ...

  10. 【剑指offer】对称的二叉树

    题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 分析:从上到下直接遍历,利用栈或者队列暂存结点,注意结点的存和取都是成对的 c ...