有个接口写成这样:
public @interface CreateInfo{}
这里的@代表什莫含义,在jdk5.0中,@符号都有什莫含义,有没有全面的介绍。
还有我们使用的框架中,在类的开始有类似:
@ActionInterceptors()
@AccessAuth(SystemDiv.FAC_NOR) --控制权限
@Forward(normal = "p01.jsp") --正常跳转
这种写法有什莫含义,在框架中大概如何实现的,有这方面经历的高手指点下思路。
public @interface CreateInfo{}
这里的@代表什莫含义,在jdk5.0中,@符号都有什莫含义,有没有全面的介绍。
还有我们使用的框架中,在类的开始有类似:
@ActionInterceptors()
@AccessAuth(SystemDiv.FAC_NOR) --控制权限
@Forward(normal = "p01.jsp") --正常跳转
这种写法有什莫含义,在框架中大概如何实现的,有这方面经历的高手指点下思路。
这个玩意是jdk1.5之后加入的,java没有给它新的关键字,所以就用@interface 这么个东西表示了
这个注解类,就是定义一个可用的注解,包括这个注解用于什么地方,是类,还是方法,还是property,还是方法入参等等,还有这个注解是否编译后进入class
比如我们知道的用于javadoc的注解,是不进入class文件的。
然后在后面你就可以用这个注解写代码了
详细的内容还是看看java1.5的注解那部分吧,网上有很多
同意steven_cheng的说法,在这里再举一个实例来进一步说明:
定义新的注释类型与创建接口有很多类似之处,只不过 interface 关键字之前要有一个 @ 符号。
请看下面的代码:
package com.oreilly.tiger.ch06;
/**
* Marker annotation to indicate that a method or class
* is still in progress.
*/
public @interface InProgress { }
如果编译这个注释类型,并确信其位于类路径中,那么就可以在自己的源
代码方法中使用它,以指出某个方法或类仍在处理中:
@com.oreilly.tiger.ch06.InProgress
public void calculateInterest(float amount, float rate) {
// Need to finish this method later
}
注释类型的使用方法和内置注释类型的使用方法完全相同,只不过要同时使用名称和所在的包来指示定制注释。
当然,一般的 Java 规则仍然适用,您可以导入该注释类型,直接使用 @InProgress 引用它。
更多内容,参见:
http://www.ibm.com/developerworks/cn/java/j-annotate1/
http://www.ibm.com/developerworks/cn/java/j-annotate2.html
简单的说,这段代码意思就是单元测试的时候,此方法在1000毫秒后结束运行。@意为注解,是很强大的东西。
这个框架中的写法是实现“零配置”支持的吧?
在Struts2中就有这样的用法,通过在类的开始写这样的东西,可以避免手动配置struts.xml中的内容~
不知道你所说的框架是不是也是类似的用法呢?