zoukankan      html  css  js  c++  java
  • Annotation(注解)的概念、作用及常用注解

    Annotation的概念

      能够添加到 Java 源代码的语法元数据。类、方法、变量、参数、包都可以被注解,可用来将信息元数据与程序元素进行关联。Annotation 中文常译为“注解”。

    • 从JDK5.0 开始,java增加了对元数据(MetaData)的支持,也就是Annotation(注解)。
    • Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
    • Annotation可以像修饰符一样被使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息被保存在Annotation的“name=value”对中。
    • Annotation能被用来为程序元素(类,方法,成员变量等)设置元数据。

     

    Annotation的作用

      标记,用于告诉编译器一些信息

      编译时动态处理,如动态生成代码

      运行时动态处理,如得到注解信息

      这里的三个作用实际对应着@Retention三种值分别表示的 Annotation

     

    常用Annotation及例子:

    • @named

      @Named和Spring的@Component功能相同。@Named可以有值,如果没有值生成的Bean名称默认和类名相同。

          例如: 

     [java] view plaincopy
    
      @Named public class Person 

         该bean的名称就是person。

    [java] view plaincopy
    
      @Named("p") public class Person 

          如果指定名称,那么就是指定的名称p

    • @model

      Annotation解析package javaeetutorial.hello1;

    import javax.enterprise.context.RequestScoped;
    import javax.inject.Named;
    
    @Named
    @RequestScoped
    public class Hello {
    
        private String name;
    
        public Hello() {
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String user_name) {
            this.name = user_name;
        }
    }

       在上面的代码中,Hello类叫做管理bean类,它为facelets页面表达式所使用的name属性提供了getter和setter方法,默认该facelets页面表达式引用的是Hello类的名字,不过第一个字母是小写字母(例如:hello.name)。

            如果你使用的是默认的bean类的类名,你注解可以用@Model来替代@Named和@RequestScoped。@Model注释称为原型,是一个包含其他注释的注释的术语。

    JavaServer Faces应用程序中最常用的范围如下:

      Request(@RequestScoped):请求范围在Web应用程序中的单个HTTP请求期间保持不变。在类似的应用程序hello1中,应用程序由单个请求和响应组成,bean使用请求范围。

      Session(@SessionScoped):会话范围在Web应用程序中的多个HTTP请求中保持不变。当应用程序由需要维护数据的多个请求和响应组成时,bean使用会话范围。

      Application(@ApplicationScoped):应用程序范围在所有用户与Web应用程序的交互中持续存在。

     

  • 相关阅读:
    Lambda表达式、依赖倒置
    ASP.NET vNext 概述
    Uname
    RHEL4 i386下安装rdesktop【原创】
    Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)
    How to decompile class file in Java and Eclipse
    先有的资源,能看的速度看,不能看的,抽时间看。说不定那天就真的打不开了(转)
    Google App Engine 学习和实践
    【VBA研究】VBA通过HTTP协议实现邮件轨迹跟踪查询
    js正則表達式语法
  • 原文地址:https://www.cnblogs.com/xiaohuomiao/p/10536489.html
Copyright © 2011-2022 走看看