• 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应用程序的交互中持续存在。

     

  • 相关阅读:
    粘包_Server
    初见UDP_Server
    初见UDP_Client
    TCP/UDP协议
    网络编程相关概念
    mmap实现大文件快速拷贝
    生成这消费者问题(多线程实现)
    线程同步互斥实现资源访问
    信号灯(线程互斥)
    线程属性
  • 原文地址:https://www.cnblogs.com/xiaohuomiao/p/10536489.html
Copyright © 2020-2023  润新知