Java 常用注解

82 阅读3分钟

@[TOC](Spring 常用注解)

SpringBootApplication

启动Application @SpringBootApplication

Configuration

配置spring并启动spring容器 @Configuration

MapperScan("com.alibaba.mapper")

扫描Mapper包 @MapperScan

EnableScheduling

定时任务 @EnableScheduling

Override

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。 重写 @Override

Overload

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

最常用的地方就是构造器的重载。

重载规则:

被重载的方法必须改变参数列表(参数个数或类型不一样); 被重载的方法可以改变返回类型; 被重载的方法可以改变访问修饰符; 被重载的方法可以声明新的或更广的检查异常; 方法能够在同一个类中或者在一个子类中被重载。 无法以返回值类型作为重载函数的区分标准。 重载 @Overload

重载 重写 区别重载方法重写方法
参数列表必须修改一定不能修改
返回类型可以修改一定不能修改
异常可以修改可以减少或删除, 一定不能抛出新的或者更广的异常
访问可以修改一定不能做更严格的限制 (可以减低限制)

Component

实现Bean组件定义 @Component

Slf4j

用于标注日志 @Slf4j

Controller

返回到指定页面 @Controller

ResponseBody

返回JSON @ResponseBody

RestController

相当于@ResponseBody + @Controller合在一起的作用 @RestController

RequestMapping("/user")

method 路径 @RequestMapping

Service

用于标注业务类 @Service

Transactional(rollbackFor = Exception.class)

用于标注事务管理器 @Transactional

Value("${base.path}")

注入参数 @Value

Autowired(required = false)

bean装配 @Autowired

Resource(required = false)

bean装配 @Resource

Repository

用于标注DAO类 @Repository

Table(name = "sys_user")

对应数据库表名 @Table

TableField("meeting_type")

对应数据库字段 @TableField

TableField(exist = false)

定义费持久化字段 @TableField

Entity

用于标注Bean类 @Entity

Data

@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集 @Data

Accessors(chain = true)

@Accessors(fluent = true) @Accessors(chain = true) @Accessors(prefix = "p") @Accessors

EqualsAndHashCode(callSuper = false)

@EqualsAndHashCode(callSuper = true) 注解的作用就是将其父类属性也进行比较
  1. 此注解会生成equals(Object other) 和 hashCode()方法。

  2. 它默认使用非静态,非瞬态的属性

  3. 可通过参数exclude排除一些属性

  4. 可通过参数of指定仅使用哪些属性

  5. 它默认仅使用该类中定义的属性且不调用父类的方法

  6. 可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。 @EqualsAndHashCode

AllArgsConstructor

构造函数含有所有已声明字段属性参数 @AllArgsConstructor

Excel(name = "名称", width = 20)

Excel对应列名 @Excel

ExcelIgnore

忽略项 @ExcelIgnore

Date_格式化

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")