Java常用注解

JDK自带注解

  • @Override  重写, 标识覆盖它的父类的方法
  • @Deprecated    已过期,表示方法是不被建议使用的
  • @Suppvisewarnings   压制警告,抑制警告

 

元注解

@Target   表示该注解用于什么地方,可取的值包括:

  • ElemenetType.CONSTRUCTOR        构造器声明
  • ElemenetType.FIELD          域声明(包括 enum 实例)
  • ElemenetType.LOCAL_VARIABLE       局部变量声明
  • ElemenetType.METHOD          方法声明
  • ElemenetType.PACKAGE           包声明
  • ElemenetType.PARAMETER        参数声明
  • ElemenetType.TYPE           类,接口(包括注解类型)或enum声明
  • ElementType.ANNOTATION_TYPE         注解

 

@Retention   表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:

  • RetentionPolicy.SOURCE       注解将被编译器丢弃
  • RetentionPolicy.CLASS        注解在class文件中可用,但会被VM丢弃
  • RetentionPolicy.RUNTIME       JVM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。

 

@Documented   将此注解包含在 javadoc 中

 

@Inherited   允许子类继承父类中的注解

 

 

常见第三方注解

@Repository:    用于标注数据访问组件,即DAO组件

@Service:    用于标注业务层组件

@Transactional:    声明这service所有方法都需要事务管理。每一个业务方法开始时都会打开一个事务

@Controller:    控制层

@Component:    把该中立的类交给spring管理

@Autowired:    自动装配,将bean容器里的值自动注入到bean

@Path:      处理REST请求,接口路径

@Method:    

常用的HTTP动词有下面五个(括号里是对应的SQL命令)。

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。

还有两个不常用的HTTP动词。

  • HEAD:获取资源的元数据。
  • OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

 

@Accept和@Content-Type

@Accept:    就表示接口要返回给客户端的数据格式
@Content-Type:    表示客户端发送给服务器端的数据格式。这个是写REST接口时候定义的 
   正常如果服务器没定义Accept但是自己添加了的话会报404,没找到对应接口。
 
 
@Produces   表示类或者方法返回的MIME数据类型

有几种格式如下:

(1)@Produces("text/plain") 文本类型

(2)@Produces("text/html")  Html类型

(3)@Produces({"application/xml"}) Xml类型

(4)@Produces({ "application/json"}) Json类型

       可以一次注解两种或多种的MIME类型,格式如:{"application/xml", "application/json"}这表示两者都可以使用,但是选择的时候一般会选择前者,即application/xml,因为它第一次出现。

 
 
@Consumes    代表的是一个资源可以接受的 MIME 类型
 
 
@Queryparam与@Pathparam

@Queryparam:指定的是URL中的参数是以键值对的形式出现的,而在程序中 @QueryParam("from")  int from则读出URL中from的值, 

例如:URL输入为:users?from=100&to=200&orderBy=age&orderBy=name 

 

@Pathparam:URL中只出现参数的值,不出现键值对

例如: /users/100 

 
 
 
 

JAVA系统注解图

posted @ 2018-08-02 14:21  woadmin  阅读(3543)  评论(0编辑  收藏  举报