常用注解总结

Controller层

  • @Controller :与@Component一样声明为Spring的Bean,同时标志为Spring的Controller类。

  • @ResponseBody:不经过视图处理器,直接将Java对象转换为json数据输出到前端

  • @RestController:@Controller@ResponseBody的功能混合

  • @RequestBody: 一般Post请求使用

    • 将HTTP输入流中的数据装配到目标类中,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的该key对应的值符合,则会调用用实体类的setter方法赋值。

    • json中,如果key对应的value为“ ”的话,实体类属性为String,则为“ ”,如果是Integer、Doublie属性的话,为null

  • @PathVariable: 用于请求中的占位符映射

  • @RequestParam: 将请求参数绑定到方法参数上

    • value:参数名

      required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。

      defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

  • @ModelAttribute

    • 在方法上 添加注解,会在 所有带有@RequestMapping注解的方法前先执行。

    • 在参数上,从Model中获取对应的值映射到 形参中。

    • 在方法上和 @RequestMapping同时使用的话,返回的值会加入到Model中,而跳转的页面则为@RequestMapping注解的值。

  • @RequestMapping:映射请求路径

    • value和path:指定请求地址

    • method:指定请求方法

    • consumes: 指定处理请求的提交内容类型(Content-Type)

    • produces:    指定返回的内容类型

    • params: 指定request中必须包含某些参数值是,才让该方法处理

    • headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求

Service层

  • @Service:标注为业务层

  • @Transactional: 事务

    • transactionManager : 指定事务管理器

    • propagation: 事务的传播行为

    • isolation: 事务的隔离度

    • timeout:事务的超时时间

    • readOnly:是否为只读事务

    • rollbackFor:能够触发事务 异常回滚的类型,Class<? extends Throwable>[]

    • rollbackForClassName:指定必须导致回滚的异常类型名,String[]

    • noRollbackFor:指定不需回滚的异常类型,Class<? extends Throwable>[]

    • noRollbackForClassName:指定不必回滚的异常类型名,String[]

实体类

  • @Entity:指定实体类

  • @Table:指定实体 类映射 的数据库表

    • name:数据库表名

    • catalog: 表的目录

    • schema:数据库名称

    • uniqueConstraints:表上字段的唯一性约束,UniqueConstraint[]

    • indexes:表的索引

  • @Id:指定对应数据库表 中主键的实体类属性

  • @GeneratedValue:主键的生产策略

    • strategy:组件生产策略

    • generator:声明了主键生成器的名称

  • @SequenceGenerator:一般用于Oracle数据库中,@GeneratedValue注解的strategy属性值为:GenerationType.SEQUENCE

    • name:唯一生成器名称,被@GeneratedValue中的generator属性引用

    • sequenceName:实体标识所使用的数据库序列号的名称

    • initialValue:序列 对象 初始化 的 值

    • allocationSize:从序列中分配序列号时要增加的数量

  • @GenericGenerator:自定义主键生成策略

    • name: 指定生成器名称

    • strategy:指定具体生成器的类名

    • parameters: 得到strategy指定的具体生成器所用到的参数

  • @Column:指定实体类中的属性与数据库中字段的映射

    • name:数据库中列的名称

    • unique:是否是唯一键

    • nullable:能否为null

    • insertable:在用INSERT插入语句时是否插入该字段的值

    • updatable:使用UPDATE更新数据时,是否更新该数据的值

    • columnDefinition:创建表时,生成SQL语句 的字段

    • table:表名

    • length:字段的长度

    • precision:表示精度,当字段类型为Double时,表示数值的 总长度

    • scale:表示精度,当字段类型为Double时,表示小数点所占的位数

  • @Temporal:帮助Java的Date类型进行 格式化 ,便于映射到数据库

  • @ManyToOne:体现实体类中多对一的映射关系

    • targetEntity:作为关联目标的实体类

    • cascade:级联到关联目标的操作

    • fetch:级联的加载方式

    • optional:是否级联

  • @ManyToMany:体现实体类多对多的映射关系

    • targetEntity:作为关联目标的实体类

    • fetch:级联的加载方式

    • cascade:级联到关联目标的操作

    • mappedBy:拥有关系的属性

  • @OneToMany:体现实体类中 一对多的映射关系

    • targetEntity:作为关联目标的实体类

    • mappedBy:拥有关系的属性

    • cascade:级联到关联目标的操作

    • fetch:级联的加载方式

    • orphanRemoval:是否将删除操作应用于具有级联关系 的实体中

  • @OneToOne:体现实体类中一对一的映射关系

    • targetEntity:作为关联目标的实体类

    • mappedBy:拥有关系的属性

    • cascade:级联到关联目标的操作

    • fetch:级联的加载方式

    • orphanRemoval:是否将删除操作应用于具有级联关系 的实体中

    • optional:是否关联

  • @Transient:注解的属性不会被序列化

其它:

  • @AliasFor:

    • 继承注解的功能

    • 为注解属性显性别名

    • 为元注解显性别名

    • 注解中的隐性别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值