您的位置:首页 > 编程语言 > Java开发

关于Java中的注解

2016-05-07 00:00 295 查看
摘要: 一些代码中的注解问题

·@SuppressWarings的意思

J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。

·使用 @Controller 定义一个 Controller 控制器

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了 @RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。

·使用 @RequestMapping 来映射 Request 请求与处理器

可以使用@RequestMapping 来映射URL 到控制器类,或者是到Controller 控制器的处理方法上。当@RequestMapping 标记在Controller 类上的时候,里面使用@RequestMapping 标记的方法的请求地址都是相对于类上的@RequestMapping 而言的;当Controller 类上没有标记@RequestMapping 注解时,方法上的@RequestMapping 都是绝对路径。这种绝对路径和相对路径所组合成的最终路径都是相对于根路径“/ ”而言的。

·什么时候用@Resource,什么时候用@service

当你需要定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于讲这个类定义为一个bean,bean名称为XXX; 当需要在某个类中定义一个属性,并且该属性是一个已存在的bean,要为该属性赋值或注入时在该属性上一行使用@Resource(name="xxx"),相当于为该属性注入一个名称为xxx的bean。

·@Target是Java的元注解(值修饰注解的注解)之一。用来指定注解修饰类的哪个成员。加大括号表示一个数组,指被修饰的注解能用于多个不同的类成员。for example: @Target (ElementType.FIELD) public @interface A{} 表示注解只能用来修饰类中的Field @Target({ElementType.FIELD,ElementType.METHOD}) public @interface A{} 表示直接A能用来修饰类中的Field和Method ·@Retention(RetentionPolicy.RUNTIME) 这个是声明注解的,@Rtention(RetentionPolicy.RUNTIME), 表示jvm运行时,此注解可被读出。

·@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

·Java用@interface Annotation{}定义一个注解@Annotation,一个注解是一个类。 @Override,@Deprecated,@SuppressWarnings为常见的三个注解,注解相当于一种标记,在程序上加了注解就等于加上了某种标记,以后JAVAC编译器,开发工具和其他程序可以用反射来了解你的类以及各种元素上有无任何标记,看你有什么标记,就去干相应的事。

注解@Override用在方法上,当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错是,编译就会报错

注解@Deprecated,用来表示某个类的属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰。

注解@SuppressWarings用来压制程序中出来的警告,比如在没有用泛型或是方法已经过时的时候。

注解@Retention可以用来修饰注解,是注解的注解,称为元注解。

·@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示来中的所有响应请求的方法都是以该地址作为父路径。

RequestMapping注解有六个属性,下面我们把它分为三类进行说明。

1.value,method value:指定请求的实际地址,指定的地址可以是URI Template模式; method:指定请求的method类型,GET,POST,PUT,DELETE等;

2.consumes,produces; consumes:指定处理请求的提交内容类型(Content-Type); produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

3.params,headers; params:指定request中必须包含某些参数值,才让该方法处理 header:指定request中必须包含某些指定的header值,才能让该方法处理请求。 无参数的log方法,例子: logger.info()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: