内容简介:在项目中,组长说我们的后来,组长说加上
引言
在项目中,组长说我们的 @Autowired 注解都是黄的
后来,组长说加上 @SuppressWarnings 来抑制警告信息
-
@SuppressWarnings 注解目标
其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。
第一次使用其注解,发现spring的强大,并了解了一下spring的各种注解
了解spring注解
spring注解分为两大类:
- spring的bean容器相关的注解,或者说bean工厂相关的注解;
- springmvc相关的注解。
spring的bean容器相关的注解:先后有: @Required , @Autowired , @PostConstruct , @PreDestory ,还有Spring3.0开始支持的JSR-330标准javax.inject.*中的注解( @Inject , @Named , @Qualifier , @Provider , @Scope , @Singleton ).
springmvc相关的注解有: @Controller , @RequestMapping , @RequestParam , @ResponseBody 等等。
springMVC注解
- @Override
我们最熟悉的 @Override, 定义
``
/**
* Indicates that a method declaration is intended to override a
* method declaration in a supertype. If a method is annotated with
* this annotation type compilers are required to generate an error
* message unless at least one of the following conditions hold:
* The method does override or implement a method declared in a
* supertype.
* The method has a signature that is override-equivalent to that of
* any public method declared in Object.
* * @author Peter von der Ahé
* @author Joshua Bloch
* @jls 9.6.1.4 @Override
* @since 1.5
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
```
从注释,我们可以看出, @Override 的作用是,提示编译器,使用了 @Override 注解的方法必须 override 父类或者 java.lang.Object 中的一个同名方法。
我们看到 @Override 的定义中使用到了 @Target , @Retention ,它们就是所谓的 元注解 ——就是定义注解的注解
- @Retention
@Retention 用于提示注解被保留多长时间,有三种取值:
public enum RetentionPolicy {
/**
* Annotations are to be discarded by the compiler.
*/
SOURCE,
/**
* Annotations are to be recorded in the class file by the compiler
* but need not be retained by the VM at run time. This is the default
* behavior.
*/
CLASS,
/**
* Annotations are to be recorded in the class file by the compiler and
* retained by the VM at run time, so they may be read reflectively.
*
* @see java.lang.reflect.AnnotatedElement
*/
RUNTIME
}
RetentionPolicy.SOURCE 保留在源码级别,编译时忽略(@Override就是此类);
RetentionPolicy.CLASS 被编译器保留在编译后的类文件级别,但是在运行丢弃;
RetentionPolicy.RUNTIME 保留至运行时。
- @Target
@Target :注解的作用目标
public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */ //接口、类、枚举、注解
TYPE,
/** Field declaration (includes enum constants) */ //字段、枚举的常量
FIELD,
/** Method declaration */ //方法
METHOD,
/** Formal parameter declaration */ //方法参数
PARAMETER,
/** Constructor declaration */ //构造函数
CONSTRUCTOR,
/** Local variable declaration */ //局部变量
LOCAL_VARIABLE,
/** Annotation type declaration */ //注解类型
ANNOTATION_TYPE,
/** Package declaration */ //包
PACKAGE,
/**
* Type parameter declaration
* @since 1.8
*/
TYPE_PARAMETER,
/**
* Use of a type
* @since 1.8
*/
TYPE_USE
}
举例
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface TestOnly {
}
只能使用在方法上,保留在源码级别,编译时忽略
总结
注解是用于建设基础jar包的一部分,项目都有自己的框架,若运用恰当,注解则为其中良好的一部分;spring从任何一个地方都能体现它的强大之处,但是我们呢??
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- SpringMVC入门学习---使用注解开发
- 《Effective Java》学习笔记五——枚举和注解
- Spring框架学习笔记2(IOC注解方式&AOP)
- Spring入门学习手册 2:怎么用注解来DI/IOC
- 【Spring Data 系列学习】Spring Data JPA @Query 注解查询
- Spring 注解编程之模式注解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Caching
Duane Wessels / O'Reilly Media, Inc. / 2001-6 / 39.95美元
On the World Wide Web, speed and efficiency are vital. Users have little patience for slow web pages, while network administrators want to make the most of their available bandwidth. A properly design......一起来看看 《Web Caching》 这本书的介绍吧!