springboot 注解
注解 | 用法 |
---|---|
@SpringBootApplication | 启动注解 @Configuration + @EnableAutoConfiguration + @ComponentScan |
@ResponseBody | RESTful,配合@RequestMapping一起使用 |
@Controller | 配合注解@RequestMapping |
@RestController | @ResponseBody + @Controller |
@RequestMapping | 提供路由信息,URL到Controller中的具体函数的映射 |
@EnableAutoConfiguration | 如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们 |
@ComponentScan | 可以自动收集所有的Spring组件 |
@Import | 导入其他配置类 |
@ImportResource | 加载xml配置文件 |
@Autowired | 根据类型进行自动装配,自动导入依赖的bean,当加上(required=false)时,就算找不到bean也不报错 |
@Repository | 这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项 |
@Value | 注入Spring boot application.properties配置的属性的值 |
@Inject | 等价于默认的@Autowired,只是没有required属性 |
@Component | 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注 |
@Qualifier | 当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用 |
@Resource | (name=”name”,type=”type”):没有括号内内容的话,默认byName。与@Autowired干类似的事 |
@PathVariable | { “。。。。” },获取参数 |
@RequestParam | 用@RequestParam注解从请求参数中映射到控制器中的参数时,控制器的参数一定要用对象类型或简单类型的包装类;若想用简单类型去接收请求中的值,需要赋值一个默认值,写成如下的形式:@RequestParam(value = "lid", required = false, defaultValue = "0") int id) |
@RequestBody | 获取到请求中的各个参数然后赋值到相对应的方法形参上 |
@Valid | 验证条件,@NotNull、@NotEmpty和@NotBlank要配合@Valid使用 |
@NotNull | 不能为null,但可以为empty,用在基本类型上 |
@NotEmpty | 不能为null,而且长度必须大于0,用在集合类上面 |
@NotBlank | 不能为null,只能作用在String上,而且调用trim()后,长度必须大于0 |
JPA 注解
注解 | 用法 |
---|---|
@Entity | @Table(name=”“):表明这是一个实体类。一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略 |
@ApiModelProperty | @ApiModelProperty(name = "appCode", value = "应用标识,闪电链0"),value:字段说明,name:重写属性名字,dataType:重写属性类型,required:是否必须,默认false,example:举例,hidden:隐藏 |
@ApiOperation | @ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”) |
@ApiParam | @ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”) |
@Api | @Api(value = "用户查询接口", tags = {"用户查询接口"}),value - 字段说明,description - 注释说明这个类 |
@MappedSuperClass | 用在确定是父类的entity上。父类的属性子类可以继承 |
@NoRepositoryBean | 一般用作父类的repository,有这个注解,spring不会去实例化该repository |
@Column | 如果字段名与列名相同,则可以省略 |
@Id | 该属性为主键 |
@JsonIgnore | json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响 |
@OneToOne | 一对一 |
@OneToMany | 一对多 |
@ManyToOne | 多对一 |
Lombok 注解
注解 | 用法 |
---|---|
@Setter | 生成setter方法,final变量不包含 |
@Getter | 生成getter方法,final变量不包含 |
@NoArgsConstructor | 生成空参构造 |
@AllArgsConstructor | 生成全部参数构造 |
@RequiredArgsConstructor | 将标记为@NoNull的属性生成一个构造器 |
@ToString | 生成所有属性的toString()方法 |
@EqualsAndHashCode | 生成equals()方法和hashCode方法 |
@Data | =@Setter+@Getter+@EqualsAndHashCode+@NoArgsConstructor |
@Builder | 构造Builder模式的结构,通过内部类Builder()进行构建对象,自动生成流式 set 值写法,从此之后再也不用写一堆 setter 了 |
@Value | 与@Data相对应的@Value, 两个annotation的主要区别就是如果变量不加@NonFinal ,@Value会给所有的弄成final的。当然如果是final的话,就没有set方法了 |
@Synchronized | 同步方法 |
@Cleanup @@SneakyThrows | 自动调用close方法关闭资源。 |
@Log4j | 注解在类上,为类提供一个 属性名为log 的 log4j 日志对象 |
Swagger2 注解
注解 | 用法 |
---|---|
@Api | 用在请求的类上,表示对类的说明。 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置" |
@ApiOperation | 用在请求的方法上,说明方法的用途、作用 value="说明方法的用途、作用" notes="方法的备注说明" |
@ApiImplicitParams | 用在请求的方法上,表示一组参数说明 |
@ApiImplicitParam | 用在@ApiImplicitParams注解中,指定一个请求参数的各个方面 name:参数名 value:参数的汉字说明、解释 required:参数是否必须传 paramType:参数放在哪个地方 · header --> 请求参数的获取:@RequestHeader · query --> 请求参数的获取:@RequestParam · path(用于restful接口)--> 请求参数的获取:@PathVariable |
@ApiResponses | 用在请求的方法上,表示一组响应 |
@ApiResponse | 用在@ApiResponses中,一般用于表达一个错误的响应信息 code:数字,例如400 message:信息,例如"请求参数没填好" response:抛出异常的类 |
@ApiModel | 用于响应类上,表示一个返回响应数据的信息 (这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候) |
@ApiModelProperty | 用在属性上,描述响应类的属性 |
MongoDB 注解
注解 | 用法 |
---|---|
@Id | 注解 |
@Document | 标注在实体类上,类似于hibernate的entity注解,标明由mongo来维护该表 |
@Indexed | 唯一索引的话是@Indexed(unique = true) |
@CompoundIndex | 复合索引 |
@Field | 代表一个字段,可以不加,不加的话默认以参数名为列名 |
@Transient | 被该注解标注的,将不会被录入到数据库中。只作为普通的javaBean属性 |
@DBRef | 关联另一个document对象。类似于mysql的表关联,但并不一样,mongo不会做级联的操作 |