框架注解

控制器部分

@PostMapping

以post请求方式映射URL

@GetMapping

以get请求方式映射URL

@Transactional

详细介绍 https://blog.csdn.net/nextyu/article/details/78669997

验证部分

@RequiresPermissions

该注解是Shiro验证框架中的注解,验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时。

@RequiresUser

验证用户是否被记忆,user有两种含义:

一种是成功登录的(subject.isAuthenticated() 结果为true);

另外一种是被记忆的(subject.isRemembered()结果为true)。

@RequiresGuest

验证是否是一个guest的请求,与@RequiresUser完全相反。

 换言之,RequiresUser  == !RequiresGuest。

此时subject.getPrincipal() 结果为null.

@RequiresRoles

例如:@RequiresRoles("aRoleName");

  void someMethod();

如果subject中有aRoleName角色才可以访问方法someMethod。如果没有这个权限则会抛出异常AuthorizationException

@RequiresPermissions

例如: @RequiresPermissions({"file:read", "write:aFile.txt"} )
  void someMethod();

要求subject中必须同时含有file:read和write:aFile.txt的权限才能执行方法someMethod()。否则抛出异常AuthorizationException

 

实体部分

@Id

@Id 标注用于声明一个实体类的属性映射为数据库的主键列。该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上。 
@Id标注也可置于属性的getter方法之前。

@GeneratedValue

用于标注主键的生成策略,通过strategy 属性指定,有四种策略:

–IDENTITY:采用数据库ID自增长的方式来自增主键字段Oracle 不支持这种方式; 
–AUTO: JPA自动选择合适的策略,是默认选项; 
–SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 
–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。

@Entity

表明这是一个实体类,要与数据库做orm映射,默认表的名字就是类名,表中的字段就是类中的属性。它的定义如下:其中name属性表示用JPQL语句时写的表的名字,如果没有在@Table注解中指定表名,这个名字也将作为表名映射到数据库

@Table

@Table 当实体类与其映射的数据库表名不同名时需要使用 @Table注解说明,该标注与 @Entity 注解并列使用,置于实体类声明语句之前,可写于单独语          句行,也可与声明语句同行。
      @Table注解的常用选项是 name,用于指明数据库的表名
      @Table注解还有两个选项 catalog 和 schema 用于设置表所属的数据库目录或模式,通常为数据库名

@Column

用来改变class中字段名与db中表的字段名的映射规则

@DynamicInsert

设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句中,默认false。

@DynamicUpdate

设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false。

@WebFilter

过滤器注解,详细了解如下链接

https://www.cnblogs.com/jinb/p/6915351.html

java元注解

适用于其他注释的注释称为元注释。 java.lang.annotation中定义了几种元注释类型。

@Retention

@Retention annotation指定标记注释的存储方式:

  • RetentionPolicy.SOURCE  - 标记的注释仅保留在源级别中,并由编译器忽略。
  • RetentionPolicy.CLASS  - 标记的注释在编译时由编译器保留,但Java虚拟机(JVM)会忽略。
  • RetentionPolicy.RUNTIME  - 标记的注释由JVM保留,因此运行时环境可以使用它。

@Target

 @Target注释标记另一个注释,以限制注释可以应用于哪种Java元素,目标注释指定下列元素类型之一作为其值:

  • ElementType.ANNOTATION_TYPE可以应用于注释类型。
  • ElementType.CONSTRUCTOR可以应用于构造函数。
  • ElementType.FIELD可以应用于字段或属性。
  • ElementType.LOCAL_VARIABLE可以应用于局部变量。
  • ElementType.METHOD可以应用于方法级注释。
  • ElementType.PACKAGE可以应用于包声明。
  • ElementType.PARAMETER可以应用于方法的参数。
  • ElementType.TYPE可以应用于类的任何元素。

@Inherited

@inherit 可以允许注解继承父类注解,并且这个注解只适用于类声明

@Repeatable 

这个注解可以使相同的注解多次作用于同一个类或字段上,例如:

@Schedule(dayOfMonth="last")
@Schedule(dayOfWeek="Fri", hour="23")
public void doPeriodicCleanup() { ... }

猜你喜欢

转载自blog.csdn.net/qq_40929531/article/details/88097853