annotation就是“注解”,是Java5引入的新特性。
使用annotation并且结合Java的反射机制或者是AOP技术,你可以在不影响源程序或者仅仅修改少量代码的情况下,为原来的程序添加新的功能。
例如在你的程序中:
@RequiredStringValidator(message = "Please enter a name", trim = true)
public void setName(String name) { this.name = name; }
这几句代码。其中的RequiredStringValidator就是一个annotation,根据你的程序,这个annotation的定义可能是:
public @interface RequiredStringValidator {
public String message;
public Boolean trim;
};
也就是说,你的setName方法被标注上了一个RequiredStringValidator的注解,并且在这种情况下,message属性被赋予“Please enter a name"值,trim属性被设为true。当执行到setName这个方法时,RequiredStringValidator就会起作用。这时你只要通过反射或者AOP,就可以捕获到这个注解,并且触发一段新的代码。
这样做的好处是减少程序的耦合,使程序更加面向切面。
使用annotation并且结合Java的反射机制或者是AOP技术,你可以在不影响源程序或者仅仅修改少量代码的情况下,为原来的程序添加新的功能。
例如在你的程序中:
@RequiredStringValidator(message = "Please enter a name", trim = true)
public void setName(String name) { this.name = name; }
这几句代码。其中的RequiredStringValidator就是一个annotation,根据你的程序,这个annotation的定义可能是:
public @interface RequiredStringValidator {
public String message;
public Boolean trim;
};
也就是说,你的setName方法被标注上了一个RequiredStringValidator的注解,并且在这种情况下,message属性被赋予“Please enter a name"值,trim属性被设为true。当执行到setName这个方法时,RequiredStringValidator就会起作用。这时你只要通过反射或者AOP,就可以捕获到这个注解,并且触发一段新的代码。
这样做的好处是减少程序的耦合,使程序更加面向切面。
解决方案 »
- 如何根据长度单位(cm)截取字符串
- 数据库中的text类型,bit类型,在实体中应该设为什么类型啊??
- 打包成war后运行出现connection refused错误
- struts2的radio标签问题
- Struts中表单验证出错后如何重新显示表单数据
- 求救,websphere内存泄漏
- struts+spring+hibernate 不能写入数据库,在线等急!!!
- struts2.x依赖注入无效的问题
- 如何删掉<?xml version="1.0" encoding="UTF-8"?>?
- 哪里能找到《J2EE core design pattern》英文版电子书,300分送上
- 动态bean拷贝问题
- spring+struts+hibernate+tomcat出错!帮忙看看
@Conversion()这两句是什么个义思,是声明吗?那为什么用到的其它三个不声明,还有,像RequiredStringValidator能直接导入的, 是已定义好的吗?像类一样吗?
http://struts.apache.org/2.0.6/docs/validation-annotation.html