JDK自带注解,就5个:
@Override 用来标识重写方法
@Deprecated 标记就表明这个方法已经过时了,但我就要用,别提示我过期
@SuppressWarnings(“deprecation”)忽略警告
@SafeVarargs jdk1.7出现,堆污染,不常用
@FunctionallInterface jdk1.8出现,配合函数式编程拉姆达表达式(或正则表达式),不常用
元注解:用来描述注解的注解,就5个
@Target 注解用在哪里:类上、方法上、属性上等等
@Retention 注解的生命周期:源文件中、字节码文件中、运行中
(泛型是一颗语法糖,在编译的时候限制集合中元素的类型,编译完以后字节码文件里没有泛型)
@Inherited 允许子注解继承
@Documented 生成javadoc时会包含注解,不常用
@Repeatable注解为可重复类型注解,可以在同一个地方多次使用,不常用
自定义注解(包括第三方注解)
@PathVariable
@RestControllerAdvice 是组件注解,他使得其实现类能够被classpath扫描自动发现,如果应用是通过MVC命令空间或MVC Java编程方式配置,那么该特性默认是自动开启的。
主要配合@ExceptionHandler使用,统一处理异常情况
@RestController 是springmvc框架提供的,用来让让浏览器访问类的,只能用在类上,相当于@ResponseBody+@Controller
@RequestMapping 定义了访问路径,可以用在类或方法上
@SpringBootApplication 是springboot提供的,作为启动类,用来启动服务器
@DateTimeFormat(pattern=“yyyy-MM-dd”) 用来String->Date,需要指定日期的格式yMd
@Test 用于junit单元测试
@Component 用来让spring完成ioc IOC的注解包括:@Component @Service @Controller
@Aspect //切面:通知+切点
@CrossOrigin 放行js的访问请求
@ResponseBody 将数据转化为JSON串
@PropertySource(value=“classpath:/mysql.properties”,encoding=“UTF-8”)
@Data 动态生成get/set/toString/equals等方法
@Accessors(chain=true) 开启链式加载 重写set方法
@NoArgsConstructor 无参构造
@AllArgsConstructor 有参构造
@BeforeEach 测试API中的注解 在执行@Test注解方法时,会提前执行
@Transactional 添加事务
@TableName(“表名”) 对象与表名映射
@SpringBootTest 该注解只能在测试类中使用,测试类的包路径必须在主启动类及子包中编辑,引入spring容器中的对象之后进行单元测试
@RestContollerAdvice 标识全局异常处理的
@ExceptionHandler({RuntimeException.class}) 拦截指定的异常类型
@Async 描述的方法底层会异步执行(不由web服务线程执行,而是交给spring自带的线程池中的线程去执行)但是@Async注解的应用有个前提,需要启动类上启动异步执
行(添加@EnableAsync注解描述),优点:不会长时间阻塞web服务(例如tomcat)线程
@EnableFeignClients 远程调用
声明bean的注解
@Component组件,没有明确的角色
@Service 在业务逻辑层使用(service层)
@Controller在展现层使用,控制器的声明
注入bean的注解
@Autowired: 由Spring提供
@Profile(“dev”) //配置开发环境使用的数据源,Spring提供了@Profile注解来解决程序在不同运行环境时候的配置差别