java常用注解及spring常见注解

  • @PostMapping

对应接收参数的注解:@RequestBody
解释:一个类的时候,或者你不想你的参数直观的被用户看到,因为PostMapping,接收参数正常是放在Body里面的,而不是拼在请求地址后面的,所以相对来说要安全一点儿,所以涉及数据库的添加、修改信息等操作、适合用这个。
举例:手机号密码登录接口

@Data
@ApiModel("手机号密码认证参数")
public class LoginByPhonePassword {
    @ApiModelProperty(value = "手机号码", required = true)
    private String phone;

    @ApiModelProperty(value = "用户密码", required = true)
    private String password;
}
    @ApiOperation("手机号密码登录")
    @PostMapping("/loginByPhonePassword")
    public void loginByPhonePassword(@Valid @RequestBody LoginByPhonePassword loginByPhonePassword){
    //TO-DO U R thing
    }
  • @GetMapping

对应接收参数的注解:@RequestParam 、@PathVaiable
解释:参数是拼接在请求地址后面的,如果你觉得你要传输到后端接口的东西是无关紧要的而且数量很少,就一个两个,用GetMapping确实还是比较方便的。
举例:根据ID查询用户信息

    @ApiOperation("根据ID查询个人信息")
    @GetMapping("/getUserInfoById")
    public void loginByPhonePassword(@RequestParam("id") Integer id ){
    //TO-DO U R thing
    }
  • @ApiOperation swagger注解

1.@ApiOperation不是spring自带的注解是swagger里的
2.注解@ApiOperation 和@ApiParam是用来构建Api 文档的
3.@ApiOperation(value="接口说明",httpMethod="接口请求方式",response="接口返回参数类型",notes="接口发布说明");其他参数可参考源码
4.@ApiParam(required ="是否必须参数",name="参数名称",value="参数具体描述")

@ApiOperation(value = "分页获取 农村保洁-积分审核 列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "size", value = "页面大小,默认10", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "current", value = "当前页码,默认1", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "kw", value = "关键字", dataType = "String", paramType = "body"),
@ApiImplicitParam(name = "status", value = "审核状态 0-未审核 1-已审核 2-已驳回 4-审核中", dataType = "String", paramType = "body"),
@ApiImplicitParam(name = "type", value = "积分类型 当前卫生", dataType = "String", paramType = "body"),
@ApiImplicitParam(name = "zid", value = "镇id", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "cid", value = "村庄id", dataType = "int", paramType = "query"),
// @ApiImplicitParam(name = "audit_status", value = "审核状态 0-未审核 1-已审核 2-已驳回 4-审核中", dataType = "int", paramType = "query"),
})

 
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.2.2</version>
</dependency>
  • @Transactional spring中管理事务一般使用

  • @Resource和@Autowired 都是为了装配Bean,但是两者在使用上又有少许区别

1.@Autowired是默认按照类型装配Bean,当需要用名称装配时,可以在@Autowired后面使用@Qualifier注解指定name属性,来告知容器加载哪个bean
2.@Resource默认按照名字装配Bean,即会按照name属性的值来找到具有相同id的Bean Definition 并注入。如果@Resource没有指定name属性,则会根据这个将要被注入的属性的名字来进行Bean装配。这段话有点绕口,下面结合例子来展示。

@Autowired() @Qualifier("baseDao")     
private BaseDao baseDao; 
@Resource(name="baseDao")     
private BaseDao baseDao;   
  • @Data注解

@Data : 注解在类上, 为类提供读写属性, 此外还提供了 get()、 set()、 toString()equals()、hashCode()、toString() 等方法。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>provided</scope>
</dependency>

其他相关注解:

@Data : 注在类上,提供类的get、set、equals、hashCode、toString等方法
@AllArgsConstructor :注在类上,提供类的全参构造
@NoArgsConstructor :注在类上,提供类的无参构造
@Setter :注在属性上,提供 set 方法
@Getter :注在属性上,提供 get 方法
@EqualsAndHashCode :注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j :注在类上,提供对应的 Logger 对象,变量名为 log

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("clean_integral_audio")
@ApiModel(value="CleanIntegralAudio对象", description="农村保洁-积分审核")
public class CleanIntegralAudio implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
  • @NoArgsConstructor和@AllArgsConstrutor注解

是lombok插件生成不同构造方法的注解,来完成项目中不同构造方法的需求。
@NoArgsConstructor : 生成一个无参数的构造方法

@AllArgsContructor: 生成一个包含所有参数的构造方法

  • @EqualsAndHashCode注解(待更新)

  • @Accessors 注解

他是lombok 插件包中的一个注解
(1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。

(2)当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。


image.png

该字段共有三个属性,分别是 fluent,chain,prefix,下面我们分别来说明下,他的意思分别是什么?
1、fluent 属性
不写默认为false,当该值为 true 时,对应字段的 getter 方法前面就没有 get,setter 方法就不会有 set。


image.png

2、chain 属性
不写默认为false,当该值为 true 时,对应字段的 setter 方法调用后,会返回当前对象
image.png

3、prefix 属性
该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的 getter 和 setter 方法。比如现在有 xxName 字段和 yyAge 字段,xx 和 yy 分别是 name 字段和 age 字段的前缀。

那么,我们在生成的 getter 和 setter 方法如下,它也是带有 xx 和 yy 前缀的。


image.png

如果,我们把它的前缀加到 @Accessors 的属性值中,则可以像没有前缀那样,去调用字段的 getter和 setter 方法。


image.png
  • @TableName 是mybatis-plus中的注解,主要是实现实体类型和数据库中的表实现映射

当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名(不加这个注解默认将实体类的小写形式在db中寻找

  • @Service注解 在类上 使用该注解,表示其是一个Service

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • [[toc]] flag 解释注解的方式:反射!反射是jdk中提供的一种机制,通过读取编译后的运行文件,反向获取类...
    bajins阅读 896评论 0 0
  • @Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="...
    自渡独自阅读 244评论 0 0
  • swagger常用到的注解有: Api ApiModel ApiModelProperty ApiOperatio...
    Youcan_〇阅读 1,544评论 0 2
  • 1、Swagger是什么 是一款让你更好的书写API文档的规范且完整的框架 提供描述、生产、消费和可视化R...
    二十三Smile阅读 1,684评论 0 2
  • 常用到的注解有: 1. @Api标记 Api 用在类上,说明该类的作用。可以标记一个 Controller 类做为...
    maxzhao_阅读 9,715评论 0 1