一、实体类
1、@Data
-
注在类上,提高代码简洁,省去大量的get()、set()等方法。
需要添加Lombok依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2、@AllArgsConstructor
-
注在类上,提供类的全参构造
3、@NoArgsConstructor
-
注在类上,提供类的无参构造
4、@Setter
- 注在类上,提供set方法
5、@Getter
- 注在类上,提供get方法
6、@EqualsAndHashCode
- 注在类上,提供equals方法和hashCode方法
7、@NotNull(message = ".......")
- 注在基本类型的数据上(Integer、Long等等),当@NotNull注解注在String类型上时,该数据不能为null,但可以为Empty。
8、@NotBlank(message = ".......")
- 注在String类型的数据上,该数据不能为null并且trim()(去除Sting类型前后空格)之后size大于0。
9、@NotEmpty(message = ".......")
- 注在String、单列集合、map集合、数组等类型的数据上,该数据不能为null或者长度为0。
10、@Value
11、注意
- 在使用@NotNull、@NotBlank、@NotEmpty注解时,还需要再Controller层定义方法的时候再参数位置前加上@Valid注解。
- @NotNull、@NotBlank、@NotEmpty、@Valid注解都是javax.validation下的。
@Data // 注在类上,提高代码简洁,省去大量的get()、set()方法
@AllArgsConstructor //注在类上,提供类的全参构造
@NoArgsConstructor //注在类上,提供类的无参构造
@Setter //注在类上,提供set方法
@Getter //注在类上,提供get方法
@EqualsAndHashCode //注在类上,提供equals方法和hashCode方法
public class UserBean {
/**
* 主键id
*/
private Integer id;
/**
* 用户名称
*/
@NotNull(message = "用户名称不能为空")
private String userName;
/**
* 用户头像
*/
@NotBlank(message = "用户头像不能为空")
private String userImage;
/**
* 用户手机号
*/
@NotNull(message = "用户手机号不能为空")
private Long userPhone;
}
@RestController
@RequestMapping(value = "user")
public class UserController {
@PostMapping(value = "/saveUser")
public RestModel saveUser(@Valid UserBean userBean){
String userName = userBean.getUserName();
String userImage = userBean.getUserImage();
Long userPhone = userBean.getUserPhone();
return RestModel.ok("添加一个名字为:" + userName + ", 头像为:" + userImage + ", 手机号为:" + userPhone + "的用户!");
}
}
二、Controller层
1、@Controller
- 该注解标识的类,代表控制类。该类的每个方法都可以去调用@Service标识的类。
2、@ResponseBody
- 该注解的作用是将Controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者XML。
3、@RestController
- 该注解的作用是@Controller + @ResponseBody
4、@RequestMapping
- 注解在类上:表示该类中的所有响应请求的方法都是以该地址为父路径;
- 注解在方法上:表示类的父路径下追加方法上注解中的地址来访问该方法。
5、@PostMapping
- 是一个复合注解,是@RequestMapping(value = "/saveUser",method = RequestMethod.POST)的简化。
6、@GetMapping、
- 是一个复合注解,是@RequestMapping(value = "/getUser",method = RequestMethod.GET)的简化。
7、@PutMapping
- 是一个复合注解,是@RequestMapping(value = "/updateUser",method = RequestMethod.PUT)的简化。
8、@DeleteMapping
- 是一个复合注解,是@RequestMapping(value = "/deleteUser",method = RequestMethod.DELETE)的简化。
9、@Autowired
- 该注解的作用的bean的注入和使用
10、@Resource
- 该注解的作用的bean的注入和使用
11、@RequestParam
- value:请求中传入参数的名称;
- required:该参数是否为必传项,默认为true;
- defaulValue:参数的默认值。
12、@RequestBody
- @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);
13、@ExceptionHandler
- 可以用来统一处理方法抛出的异常,是注解在方法上的。
14、@RestControllerAdvice
-
@RestControllerAdvice是@ControllerAdvice + @ResponseBody,是全局接口异常处理的类,当发生异常没有捕获时,便会触发这个异常。
三、Service层
1、@Service
-
标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。
四、Mapper层
1、@Mapper
- 这个注解一般使用在
Dao
层接口上,相当于一个mapper.xml
文件,它的作用就是将接口生成一个动态代理类 - 目的就是为了不再写
mapper
映射文件。这个注解就是用来映射mapper.xml
文件的
2、@Param
- 该注解是作用在参数上的,使用这个注解的字段在SQL语句中通过该注解的值进行赋值
五、其他注解
1、@Configuration
- @Configuration注解的作用:声明一个类为配置类,用于取代bean.xml配置文件注册bean对象。
2、@Bean
- 用于将对象存入spring的ioc容器中。
3、@Component
- 标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean。
10、@Async
- @Async这个注解用于标记的异步的方法。方法上一旦标记了这个方法,当其它线程调用这个方法时,就会开启一个新的线程去异步处理业务逻辑。
11、@EnableAsync
- 该注解作用于启动类上,开启异步方法调用,和@Async搭配使用。