Servlet常用注解:

@WebServlet:注册servlet

  编写好Servlet之后,接下来需要要告诉Web容器有关于这个Servlet的一些信息。

在Servlet 3.0中,可以使用标注(Annotation)来告知容器哪些Servlet会提供服务以及额外信息。

也就是说:web.xml中对Servlet配置,同样可以在 @WebServlet 注解中配置.

主要注意的是:

  如果是SpringBoot项目,需要在主启动类上面添加 @ServletCompontntScan 注解

常用注解和SpringBoot项目开发常用注解以及配置

下面使用xml与注解进行一个比对:

常用注解和SpringBoot项目开发常用注解以及配置

MyBatis常用注解:

@Param :传递参数

  • @Param是MyBatis所提供的(org.apache.ibatis.annotations.Param),
  • 作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应,一般在2=<参数数<=5时使用最佳。
  • @Param是地处Dao层,是为了传递多个参数,解决的是可读性和直观性;
  • 在方法只接受一个参数的情况下,可以不使用@Param。
  • 在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。
  • 如果参数是 JavaBean , 则不能使用@Param。
  • 不使用@Param注解时,参数只能有一个,并且是Javabean。
  • 基本类型 的参数或者String类型都需要加上
  • 引用类型不需要加
  • 我们在sql 中引用的就是我们这里的@Param("")中设定的属性名

常用注解和SpringBoot项目开发常用注解以及配置

@Mapper:标记持久层

@Mapper与@Repository的相同点

两个注解都可在dao/mapper层使用(用来标记持久层),生成相应代理对象bean注入到spring容器中。

@Mapper与@Repository的不同点

@Mapper是mybatis的注解,可以单独使用,也允许存在在多个mapper文件,它不需要在Spring中配置扫描地址,通过xml里面的namespace里面的接口地址,生成Bean后注入到Service层中。
@Repository是spring提供的注解,能够将该类注册成Bean。被依赖注入,但是使用该注解后,在启动类上要加@MapperScan来表名Mapper类的位置,否则扫描不到。但在idea中,使用@Repository可以消除在业务层中注入mapper对象时的错误。

@MapperScan:扫描持久层接口

常用注解和SpringBoot项目开发常用注解以及配置

Mybatis-Plus常用注解:

@TableName

  注解在类上,指定类和数据库表的映射关系。实体类的类名(转成小写后)和数据库表名相同时,可以不指定该注解。

@TableId

  注解在实体类的某一字段上,表示这个字段对应数据库表的主键

在插入数据的时候如果不指定id的数据,mp会自动进行填充数据(雪花算法)

@TableField

  注解在某一字段上,指定Java实体类的字段和数据库表的列的映射关系。这个注解有如下几个应用场景。

数据库表跟实体类属性不对应:比如数据库中是"name",实体类中是private String username,就需要通过指定数据库中的字段名称

常用注解和SpringBoot项目开发常用注解以及配置

排除非表字段:若Java实体类中某个字段,不对应表中的任何列,它只是用于保存一些额外的,或组装后的数据,则可以设置exist属性为false,这样在对实体对象进行插入时,会忽略这个字段。

  排除非表字段也可以通过其他方式完成,如使用statictransient关键字

不查询指定字段属性:在我们查询数据的时候有时候并不想查询显示某一列的数据,就可以设置select属性为false @TableField(select = false) 

字段验证策略通过insertStrategyupdateStrategywhereStrategy属性进行配置,可以控制在实体对象进行插入,更新,或作为WHERE条件时,对象中的字段要如何组装到SQL语句中。

字段填充策略:在表中做数据库的更新和插入字段的时候填充数据,只需要实体类中指定file属性

  步骤1、在实体类添加注解

  步骤2、自定义实现类 MyMetaObjectHandler:https://mp.baomidou.com/guide/auto-fill-metainfo.html

常用注解和SpringBoot项目开发常用注解以及配置

@Version乐观锁注解

@EnumValue注解在枚举字段上

@TableLogic逻辑删除

  作用在实体类的属性上面,表示逻辑删除,指的是不会真正的从数据库中删除记录,而是将deleted(逻辑删除)字段更新为1

*:逻辑删除实质上是执行update语句

常用注解和SpringBoot项目开发常用注解以及配置

KeySequence序列主键策略(oracle

InterceptorIgnore插件过滤规则

Lombok常用注解:

1、要在idea中添加lombok插件

2、配置lombok的Maven依赖

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>
View Code

相关文章: