Spring常用注解
2020-06-10 17:27:07   60  举报             
     
         
 AI智能生成
  spring工作中常用注解
    作者其他创作
 大纲/内容
  Spring Bean    
     @Autowired    
     自动导入对象到类中,被注入进的类同样要被 Spring 容器管理比如:Service 类注入到 Controller 类中。  
     @Component    
     通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注。  
     @Repository    
     对应持久层即 Dao 层,主要用于数据库相关操作  
     @Service    
     对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层  
     @Controller    
     对应 Spring MVC 控制层,主要用户接受用户请求并调用 Service 层返回数据给前端页面。  
     @RestController  
     @Scope    
     作用域    
     singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。  
     prototype : 每次请求都会创建一个新的 bean 实例  
     request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。  
     session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效  
     Configuration    
     一般用来声明配置类  
     前后端传值    
     @PathVariable    
     用于获取路径参数  
     @RequestParam    
     用于获取查询参数  
     @RequestBody    
     一个请求方法只可以有一个@RequestBody  
     参数校验    
     字段验证的注解    
     @NotEmpty    
     被注释的字符串的不能为 null 也不能为空  
     @NotBlank    
     被注释的字符串非 null,并且必须包含一个非空白字符  
     @Null    
     被注释的元素必须为 null  
     @NotNull    
     被注释的元素必须不为 null  
     @AssertTrue    
     被注释的元素必须为 true  
     @AssertFalse    
     被注释的元素必须为 false  
     @Pattern(regex=,flag=)    
     被注释的元素必须符合指定的正则表达式  
     @Email    
     被注释的元素必须是 Email 格式  
     @Min(value)    
     被注释的元素必须是一个数字,其值必须大于等于指定的最小值  
     @Max(value)    
     被注释的元素必须是一个数字,其值必须小于等于指定的最大值  
     @DecimalMin(value)    
     被注释的元素必须是一个数字,其值必须大于等于指定的最小值  
     @DecimalMax(value)    
     被注释的元素必须是一个数字,其值必须小于等于指定的最大值  
     @Size(max=, min=)    
     被注释的元素的大小必须在指定的范围内  
     @Digits (integer, fraction)    
     被注释的元素必须是一个数字,其值必须在可接受的范围内  
     @Past    
     被注释的元素必须是一个过去的日期  
     @Future    
     被注释的元素必须是一个将来的日期  
     验证请求体(RequestBody)
  
     验证请求参数(Path Variables 和 Request Parameters)  
     全局处理 Controller 层异常    
     @ControllerAdvice :注解定义全局异常处理类  
     @ExceptionHandler :注解声明异常处理方法  
     事务 @Transactional    
     作用于类:当把@Transactional 注解放在类上时,表示所有该类的public 方法都配置相同的事务属性信息。  
     作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。  
     @SpringBootApplication    
     @EnableAutoConfiguration    
     启用 SpringBoot 的自动配置机制  
     @ComponentScan    
     扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。  
     @Configuration    
     允许在 Spring 上下文中注册额外的 bean 或导入其他配置类  
     HTTP 请求类型    
     GET 请求    
     @GetMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.GET)  
     POST 请求    
     @PostMapping("users") 等价于@RequestMapping(value="/users",method=RequestMethod.POST)  
     PUT 请求    
     @PutMapping("/users/{userId}") 等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.PUT)  
     DELETE 请求    
     @DeleteMapping("/users/{userId}")等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE)  
     PATCH 请求  
     读取配置信息    
     @Value    
     使用 @Value("${property}") 读取比较简单的配置信息  
     @ConfigurationProperties    
     @ConfigurationProperties读取配置信息并与 bean 绑定  
     @PropertySource    
     @PropertySource读取指定 properties 文件  
     JPA 相关    
     创建表    
     @Entity声明一个类对应一个数据库实体。  
     @Table 设置表名  
     创建主键    
     @Id :声明一个字段为主键。    
     1.通过 @GeneratedValue直接使用 JPA 内置提供的四种主键生成策略来指定主键生成策略  
     2.通过 @GenericGenerator声明一个主键策略,然后 @GeneratedValue使用这个策略  
     设置字段类型    
     @Column 声明字段  
     指定不持久化特定字段    
     @Transient :声明不需要与数据库映射的字段,在保存的时候不需要保存进数据库     
     除了 @Transient关键字声明, 还可以采用下面几种方法  
     声明大字段    
     @Lob:声明某个字段为大字段。    
     更详细的声明  
     创建枚举类型的字段    
     可以使用枚举类型的字段,不过枚举字段要用@Enumerated注解修饰    
     使用  
     增加审计功能    
     @CreatedDate: 表示该字段为创建时间时间字段,在这个实体被 insert 的时候,会设置值  
     @CreatedBy :表示该字段为创建人,在这个实体被 insert 的时候,会设置值
@LastModifiedDate、@LastModifiedBy同理。
    @LastModifiedDate、@LastModifiedBy同理。
 @EnableJpaAuditing:开启 JPA 审计功能。  
     删除/修改数据    
     @Modifying 注解提示 JPA 该操作是修改操作,注意还要配合@Transactional注解使用。  
     关联关系    
     @OneToOne 声明一对一关系  
     @OneToMany 声明一对多关系  
     @ManyToOne声明多对一关系  
     @MangToMang声明多对多关系  
     json 数据处理    
     过滤 json 数据    
     @JsonIgnoreProperties 作用在类上用于过滤掉特定字段不返回或者不解析。
  
     @JsonIgnore一般用于类的属性上,作用和上面的@JsonIgnoreProperties 一样。  
     格式化 json 数据    
     @JsonFormat一般用来格式化 json 数据。  
     扁平化对象    
     之前    
     代码  
     结果  
     扁平对象之后    
     代码  
     结果  
    
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
  
  
 