springboot注解

本文详细介绍了Spring Boot中常用的注解,包括实体类的@Data、@AllArgsConstructor等,Controller层的@Controller、@ResponseBody等,Service层的@Service,Mapper层的@Mapper,以及其他如@Configuration、@Bean等注解的用法和作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实体类

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搭配使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值