一、注解
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