一、注解

1.Spring自带

  • @Component
  • @Controller
  • @Service
  • @Repository
  • @RestController (@ResponseBody + @Controller)
  • @Bean
  • @Autowired
  • @Resource
  • @RequestMapping
  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @ResponseBody
  • @SpringBootConfiguration
  • @EnableTransactionManagement:启用事务管理
  • @PropertySource("classpath:xxxx.properties"):读取配置文件
  • @ConfigurationProperties(prefix='前缀'):将配置文件属性与类属性绑定
  • @CrossOrigin:开放前端的跨域访问

2.MyBatis/MyBatis-Plus

  • @Mapper:在接口类上添加,在编译之后会生成相应的接口实现类
  • @MapperScan:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类
  • @TableId:主键映射,@TableId(value = "id", type = IdType.AUTO)
  • @TableName:表名映射,@TableName("order_info")
  • @TableField:字段映射,@TableField("order_id")

3.Swagger(接口文档注解)

  • @EnableSwagger2:启用Swagger,并配合如下代码使用
@Configuration  
@EnableSwagger2  
public class Swagger2Config {  
    @Bean  
	 public Docket docket(){  
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder().title("项目接口文档").build());  
    }  
}
  • @Api:使用在类上
  • @ApiOperation:使用在方法上
  • @ApiParam:使用在方法、参数上
  • @ApiModel:使用在类上
  • @ApiModelProperty:使用在方法、字段上

4.lombok(老版本IDEA需要安装lombok插件)

  • @Slf4j:日志输出注解,配合 log.xxx + yml 文件配置日志级别使用
  • @Data:实现一系列类方法
  • @AllArgsConstructor:全参构造器
  • @Accessors:
  • 参数 fluent 如果为true,则set/get方法名为字段名;
  • 参数 chain 如果为true,则set/get方法返回值为当前类型
  • 参数 prefix 中可以填写前缀,用于生成set/get方法的字段名会忽视指定前缀(遵守驼峰命名)
  • @Setter
  • @Getter
  • @ToString
  • @EqualsAndHashCode
  • .....

5.Java自带

  • @Target:用于设定注解使用范围
  • ElementType.METHOD - 可用于方法上
  • ElementType.TYPE - 可用于类或者接口上
  • ElementType.ANNOTATION_TYPE - 可用于注解类型上(被@interface修饰的类型)
  • ElementType.CONSTRUCTOR - 可用于构造方法上
  • ElementType.FIELD - 可用于域上
  • ElementType.LOCAL_VARIABLE - 可用于局部变量上
  • ElementType.PACKAGE - 用于记录java文件的package信息
  • ElementType.PARAMETER - 可用于参数上
  • @Retention:表明注解会被保留到哪个阶段
  • RetentionPolicy.SOURCE - 这种类型的Annotations只在源代码级别保留,编译时就会被忽略
  • RetentionPolicy.CLASS - 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略
  • RetentionPolicy.RUNTIME - 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用
  • @Documented:表明这个注解应该被 javadoc工具记录. 默认情况下javadoc是不包括注解的,但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中
  • @Inherited:允许子类继承父类的注解,仅限于类注解有用,对于方法和属性无效

@EnableScheduling