部分注解不定时更新
Spring部分
1.声明bean的注解
@Component 组件,没有明确的角色
@Service 在业务逻辑层使用(service层)
@Repository 在数据访问层使用(dao层)
@Controller 在展现层使用,控制器的声明(C)
2.注入bean的注解
@Autowired:由Spring提供
@Resource:由JSR-250提供
@AutoWried按by type自动注入,而@Resource默认按byName自动注入。
3.切面(AOP)相关注解
Spring支持AspectJ的注解式切面编程。
@Aspect 声明一个切面(类上)
@After 在方法执行之后执行(方法上)
@Before 在方法执行之前执行(方法上)
@Around 在方法执行之前与之后执行(方法上)
@Scope 设置Spring容器如何新建Bean实例(方法上,得有@Bean)
@annotation() 声明以注解的方式来定义切点 参考例子https://www.cnblogs.com/unknows/p/10315708.html
其设置类型包括:
Singleton (单例,一个Spring容器中只有一个bean实例,默认模式),
Request (web项目中,给每个http request新建一个bean),
Session (web项目中,给每个http session新建一个bean),
Configuration https://blog.csdn.net/u014199143/article/details/80692685
4 SpringMVC部分
@Controller 声明该类为SpringMVC中的Controller
@RequestMapping 用于映射Web请求,包括访问路径和参数(类或方法上)
@ResponseBody 支持将返回值放在response内,而不是一个页面,通常用户返回json数据(返回值旁或方法上)
@RequestBody 允许request的参数在request体中,而不是在直接连接在地址后面。(放在参数前)
@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。
@PathVariable可选择参数
@RestController 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。
@RequestParam 将请求参数绑定到你控制器的方法参数上
5 lombok
@Setter 用于为描述的类生成setter方法,不包含final修饰属性。
@Getter 用于为描述的类生成getter方法。
@ToString 用于为描述的类添加toString方法。
@EqualsAndHashCode 用于为描述的类,生成hashCode和equals方法。
@NoArgsConstructor 用于为描述的类生成无参的构造方法。
@AllArgsConstructor 用于为描述的类生成包含类中所有字段的构造方法。
@Data用于为描述的类生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Slf4J 用于为描述的类添加一个日志属性对象、
###异常处理
@ExceptionHandler(ArithmeticException.class)描述的方法为异常处理方法(注解中的异常类型为可处理的异常类型)
@RestControllerAdvice 注解描述的类为全局异常处理类,
6 自动扫描
@Configuration 告诉spring框架 这是配置类,自动扫描
7 swagger里的注解
参考网站https://www.jianshu.com/p/12f4394462d5
ApiOperation是swagger里的注解,是用来构建Api文档的,用在方法上,说明方法的作用
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response =
“接口返回参数类型”, notes = “接口发布说明”)
@Api用在类上,说明该类的作用
ApiParam请求属性
ApiResponse:响应配置
ApiResponses:响应集配置
ResponseHeader:相应头的设置
@ApiModel
使用场景:在实体类上边使用,标记类时swagger的解析类。
概述:提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省。
@ApiModelProperty
使用场景:使用在被 @ApiModel 注解的模型类的属性上。表示对model属性的说明或者数据操作更改 。
概述:添加和操作模型属性的数据。参考网站https://www.cnblogs.com/anycc/p/12910853.html
8 注释
//注释的标志
@Documented
//注解使用范围
@Target({ElementType.METHOD})
//用来修饰注解,是注解的注解,称为元注解
@Retention(RetentionPolicy.RUNTIME)
9 Spring
@Null 被注释的元素必须为null
@NotNull 被注释的元素不能为null
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字, 其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max,min) 被注释的元素的大小必须在指定的范围内。
@Digits(integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式。
@Email 被注释的元素必须是电子邮件地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串必须非空
@Range 被注释的元素必须在合适的范围内
10 和数据库相关的注解
@Column
name定义了被标注字段在数据库表中所对应字段的名称;
unique表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。
nullable表示该字段是否可以为null值,默认为true。
insertable表示在使用“INSERT”脚本插入数据时,是否需要插入该字段的值。
updatable表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。insertable和updatable属性一般多用于只读的属性,例如主键和外键等。这些字段的值通常是自动生成的。
columnDefinition(大多数情况,几乎不用)表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。(也就是说,如果DB中表已经建好,该属性没有必要使用。)
table表示当映射多个表时,指定表的表中的字段。默认值为主表的表名。
length表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。
precision和scale
precision属性和scale属性表示精度,当字段类型为double时,precision表示数值的总长度,scale表示小数点所占的位数。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。