1. AOP 注解介绍
@Aspect 把当前类标识一个切面,供容器读取
1.@Before 前置增强(目标方法执行之前,执行注解标注的内容)
2.@AfterReturning 后置增强(目标方法正常执行完毕后,执行)
3.@Around 环绕增强(目标方法执行前后,分别执行一些代码)
4.@AfterThrowing 抛出增强(目标方法发生异常,执行)
5.@After Final增强(不管是抛出异常还是正常退出,该增强都会得到执行。一般用于释放资源,相当于try{}finally{})。
- @annotation表示标注了某个注解的所有方法,以下实例说明@annotation的用法。
2. API注解组件
@ApiModelProperty 对象属性,出入参数对象的字段上
@Api 协议集描述,用着controller类上
@ApiOperation 协议描述,用在controller类上
@ApiResponses Response集,用在controller方法上
@ApiResponse Response 用在@ApiResponse里面
@ApilmplicitParams 非对象参数集 用在controller方法上
@ApilmplicitParam 非对象参数描述 用在@ApilmplicitParams里面
3. 元注解 meta-annotion
@Target](mailto:1.@Target), 指定Annotion所修饰的对象范围,明晰其修饰的目标
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Retention](mailto:2.@Retention), 定义改注解保留时间长短,可以对annotion生命周期进行限制
1.SOURCE:在源文件中有效(即源文件保留)
2.CLASS:在class文件中有效(即class保留)
3.RUNTIME:在运行时有效(即运行时保留)
@Documented](mailto:3.@Documented), 用于描述其他类型的annotion应该被作为被标注的程序成员的公共api,属于标记注解,没有成员
@Inherited](mailto:4.@Inherited) 标记注解,阐述了某个被标注的类型是被继承的,如果一个使用了此注解的annotion类型被用于一个class,则这个annotion将被用于该class的子类;
4. spring注解
@Autowired 根据类型自动注入依赖
@Qualifier autowird=byName,@Autowired判断多个同类型时候,需要@Qualifier(“xxxController”)来指定依赖的bean的id
@Resource 根据byName 来依赖注入,@Resource(name=‘xxxBean’),
@PostConstruct 和 @PreDestroy 不是用于依赖注入,而是bean 的生命周期。类似于 init-method(InitializeingBean) destory-method(DisposableBean)
@RestController 相当于@ResponseBody+@Controller
@Slf4j 日志,省去logger =LoggerFactory.getLogger(xx.class);
@GetMapping =@RequestMappin(method=RequestMethod.get)
@PostMappin 同理
@Configuration 定义配置类,替换配置文件,用在类上
@Bean 注解方法,AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,用于构建bean定义的初始spring
@Condition根据满足指定条件来决定是否装配bean
@SuppressWarning 给编译器一条指令,告诉被批注的代码元素内部某些警告保持默许,all:抑制所有类的警告,unchecked:抑制单类型警告,rowtypes 表示多类型;
@Resource 相当于@Autowired 默认按byName自动注入,属性:name:解析bean的名字,type:解析bean的类型
- 对component 、controller,service等注解不解释;