一、What is annotation?

annotation的中文意思就是注解,注释的意思。注解也属于一种类型。它是在 Java SE 5.0 版本中开始引入的概念。它的形式跟接口很类似,不过前面多了一个 @ 符号。

维基百科的解释:

在Java计算机编程语言中,注释是一种可以添加到Java源代码的语法元数据。可以注释类,方法,变量,参数和包。与Javadoc标签一样,可以从源文件中读取Java注释。与Javadoc标记不同,Java注释也可以嵌入和读取编译器生成的类文件。这允许Java VM在运行时保留注释并通过反射读取。可以用Java中的现有元注释创建元注释。

注释用于提供有关程序的补充信息。

  • 注释以' @ ' 开头。
  • 注释不会更改已编译程序的操作。
  • 注释有助于将元数据(信息)与程序元素(例如实例变量,构造函数,方法,类等)相关联。
  • 注释不是纯注释,因为它们可以改变编译器处理程序的方式

类别:

1.标记注释:

唯一的目的是标记声明。这些注释不包含任何成员,也不包含任何数据。因此,它作为注释的存在就足够了。由于标记界面不包含任何成员,因此只需确定它是否存在就足够了。

例如: -  @Test()

2.单值注释:

这些注释仅包含一个成员,并允许使用指定成员值的简写形式。我们只需要在应用注释时指定该成员的值,而不需要指定成员的名称。但是,为了使用此简写,成员的名称必须是值。

例如: -  @Test(“testing”);

3.完整注释:

这些注释由多个数据成员/名称,值,对组成。

例如: - @TestAnnotation(owner =“Rahul”,value =“Class Geeks”)

Example:

1.@named:

javax.inject

public @interface Named

通过@Named标注处理单接口与多个实现类的注入

其具体使用方法为:

    使用 @Named 标记 Module 中生成类实例的方法

    使用 @Named 标记目标类中相应类实例

    用法示例:

     public class Car {
  @Inject @Named("driver") Seat driverSeat;
  @Inject @Named("passenger") Seat passengerSeat;
  ...
  }

2.@requestscope:

javax.enterprise.context

public @interface RequestScoped

指定bean是请求范围的。

请求范围处于活动状态:

  • 在Web应用程序中任何servlet 的service()方法期间,在任何servlet过滤器的doFilter()方法期间以及当容器调用任何ServletRequestListener 或AsyncListener时
  • 在任何Java EE Web服务调用期间,
  • 在任何EJB的任何远程方法调用期间,在任何EJB的任何异步方法调用期间,在对EJB超时方法的任何调用期间以及在向任何EJB消息驱动的bean传递消息期间,以及
  • 在从MessageEistener传递到从Java EE组件环境获取的JMS主题或队列的任何消息传递期间。

请求上下文被销毁:

  • 在servlet请求结束时,在service() 方法之后,所有doFilter()方法以及所有requestDestroyed() 和onComplete()通知都返回,
  • Web服务调用完成后,
  • 在EJB远程方法调用之后,异步方法调用,超时或消息传递完成,或
  • 邮件传递到MessageListener 完成后。

3.@mode

javax.enterprise.inject

public @interface Model
用于bean的内置构造型,用于定义MVC Web应用程序体系结构(如JSF)的模型层
二、Hello1.java
//注明包名
package javaeetutorial.hello1;
//引入两个包
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
//采用装饰器
@Named          //生成的bean名称和类名称一样
@RequestScoped         //指定bean是请求范围的
//创建hello类
public class Hello {
    private String name;          //定义一个私有string类型的变量name
    public Hello() {             //定义构造函数
    }
    public String getName() {      //定义getName()函数
        return name;          //返回name的值
    }
    public void setName(String user_name) {      //定义setName函数
        this.name = user_name;             //将参数的name值赋值给hello的对象
    }
}
 

ANNOTATION and analyse hello1.java的更多相关文章

  1. java EE中的hello1.java及Annotation(注解)

    一.Annotation(注解) 注解(Annotation)很重要,未来的开发模式都需要注解,注解是java.lang.annotation包,Annotation是从java5引入的,它提供一些不 ...

  2. [1] 注解(Annotation)-- 深入理解Java:注解(Annotation)基本概念

    转载 http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html 深入理解Java:注解(Annotation)基本概念 什么是注解(An ...

  3. [2]注解(Annotation)-- 深入理解Java:注解(Annotation)自定义注解入门

    转载 http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 深入理解Java:注解(Annotation)自定义注解入门 要深入学习 ...

  4. 解释 Hello1.java

    hello1.java 代码 package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped; import ...

  5. Intorduction of Annotation ,about examples in Hello1.java

    java ee 里的常用注解 .@Controller,@Service,@Repository,@Component,@RestController这几个注解用于实例化class对象.分别对应于控制 ...

  6. hello1.java内容简单介绍

    双击该Hello.java文件以查看它. 在Hello类,称为管理bean类,提供了getter和setter方法name中的Facelets页面表达式中使用属性.默认情况下,表达式语言引用类名,第一 ...

  7. [3] 注解(Annotation)-- 深入理解Java:注解(Annotation)--注解处理器

    转载 http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html 深入理解Java:注解(Annotation)--注解处理器 如果没有用 ...

  8. Java ee Turorial Hello1 Hello1.java解析

    package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped;import javax.inject.Nam ...

  9. Java Basic - Annotation

    使用注解最主要的部分在于对注解的处理,那么就会涉及到注解处理器.      从原理上讲,注解处理器就是通过反射机制获取被检查方法上的注解信息,然后根据注解元素的值进行特定的处理.   注解处理器类库( ...

随机推荐

  1. 经典面试题回答——学习Java基础的目的

    本系列知识解释:相信每个学习Java的人都是从JavaSE開始的,也就是Java基础開始. 可是却并不清楚学习Java基础究竟有什么用?        首先我来回答这个问题,学习Java基础是有两个目 ...

  2. 【Noip模拟By yxj】

    1.randomDescription 给定4个参数A0,N,c,p,你需要按下式构造A1~AN: A[i]=(A[i-1]2+c)mod p 之后,你需要求出A1~AN中,第K大的数值.Input ...

  3. HDU 5979 Convex【计算几何】 (2016ACM/ICPC亚洲区大连站)

    Convex Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  4. 预载入和javascript对象

    请参见 http://www.west263.com/info/html/wangyezhizuo/Javascript/20080225/34168.html

  5. P1196 [NOI2002]银河英雄传说(并查集)

    P1196 [NOI2002]银河英雄传说(并查集) 本题关键 用两个一维数组表示了一个稀疏的二维数组. 这两个一维数组一个表示祖先(就是最前面那个),一个表示距离祖先的距离. 并且还有一个关键点是, ...

  6. sublime —— 强大的插件

    1. 代码 自动补全与智能提示: All Autocomplete:Sublime Text 默认的 Autocomplete 功能只考虑当前的文件,而 All Autocomplete 插件会搜索所 ...

  7. 【POJ 1364】 King

    [题目链接] 点击打开链接 [算法] 差分约束系统 [代码] #include <algorithm> #include <bitset> #include <cctyp ...

  8. Git简介(转载)

    转自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396284551 ...

  9. bzoj 1232: [Usaco2008Nov]安慰奶牛cheer【最小生成树】

    有趣 每条边在算答案的时候被算了二倍的边权值加上两个端点的权值,然后睡觉点额外加一次 所以可以用这个权做MST,然后加上点权最小的点 #include<iostream> #include ...

  10. [App Store Connect帮助]六、测试 Beta 版本(4.4) 管理 Beta 版构建版本:停止测试构建版本

    在首页上,点按“我的 App”,选择您的 App,然后在工具栏中点按“TestFlight”. 在左列中的“构建版本”下,点按您 App 的平台(iOS 或 Apple TVOS). 在右表中,点按该 ...