JDK自带注解:
@Override: 用来标识重写方法
@Deprecated:用来标记这个方法已经过时,使用时不要报错
@SupperessWarings("deprecation")忽略警告
@SafeVarargs 堆污染,不常用
@Functionalllnterface 配合函数式编程拉姆达表达式
元注解:用来描述注解的注解
@Target 注解用在哪里
ElementType.TYPE 应用于类的元素
ElementType.METHOD 应用于方法集
ElementType.FIELD 应用于字段或者属性
ElementType.ANNOTAION_TYPE 应用于注解类型
ElementType.CONSTRUCTOR 应用于构造函数
ElementType.LOCAL_VARABLE 应用于局部变量
ElementType.PACKAGE 应用于包声明
ElementType.PARMETER 应用于方法的参数
@Retention 注解的生命周期
SOURCE 在源文件中有效
CLASS 在class中有效
RUNTIME 在运行时有效
@Inherited 允许子注解继承
@Documented 生成javadoc时会包含注解,不常用
@Repeatable注解为可重复类型注解,可以在同一个地方多次使用,不常用
Spring的注解
IOC DI
@Component 把对象交给Spring管理
@Controller 用于控制层的注解
@Service 用于业务层的注解
@Repository 用于持久层的注解
@AutoWired 自动按照类型注入
@Resource:按照bean的id注入 name 指定bean的值
@Value 注入基本数据类型和string类型 value:用于指定值
@Bean 写在方法上,将方法的返回值作为一个对象,并且放入spring容器,id就是bean的name的属性值
例子:@Bean(name = "datasource")
@Import 导入其他配置类
@Runwith: 替换掉Junit的运行器,换成一个初始化spring容器的运行器
AOP
定义一个切面类:
1.@Aspent 用来描述这是一个切面类
2.@Component 注解表示将这个类交给spring来管理
@Pointcut 用来定义一个切点,所关注的某件事情的入口
@Around 环绕通知
@Before 指定的方法在切面切入目标方法之前就执行
@After 指定的方法在切面切入目标方法之后执行
@AfterReturning 用来捕获切入方法执行完之后的返回值
@AfterThrowing 当被切方法执行过程中抛出异常是,会进入 @AfterThrowing注解的方法中执行
SpringMVC中的注解
@RequestMapping 请求之后的映射路径
@PathVariable 标识接收单个参数
@ResponseBody 将对象转换为json字符串 用于GET,POST请求
@ResponParam 参数名和请求参数各不相同时使用
Mybatis的注解
@Insert 新增
@Delete 删除
@Update 更新
@Select 查询
@Result 实现结果集封装
@Results 封装多个结果
@ResultMap 实现引用@Results的封装
@One 实现一对一结果封装
@Many 实现结果一对多的封装
@SelectProvider 实现动态SQL的映射
@CacheNamespace 实现注解二级缓存的使用
其他注解
@Test 测试类注解
@CrossOrigin 解决跨域问题
lombok插件
@Accessors(chain = true) 连续的.get和.set
@Data 重写类的get,set,equals,tostring等方法
@NoArgsConstuctor 无参构造
@AllArgsConstuctor 全参构造