Spring boot常用注解的一些介绍

一、注解列表 annotations

1、@SpringBootApplication

@SpringBootApplication是一个注解,用于标记Java应用程序的主类,以指示Spring Boot根据类路径中的设置自动配置Spring应用程序。它组合了三个注解:

  • @SpringBootConfiguration:表示该类是Spring Boot应用程序的配置类。
  • @EnableAutoConfiguration:表示启用Spring Boot自动配置机制。
  • @ComponentScan:表示Spring应该扫描该类所在的包以及其子包以查找其他组件、配置和服务。

使用@SpringBootApplication注解可以大大简化Spring Boot应用程序的配置和启动。只需要将注解放在应用程序的主类上即可引入Spring Boot的自动配置机制,无需手动配置大部分Spring组件和功能。

 2、@ComponentScan

@ComponentScan是Spring框架中的一个注解,用于指示Spring自动扫描指定的包及其子包,将被注解为@Controller、@Service、@Repository和@Component的类自动注册到Spring上下文中。这样就可以自动实例化这些类,并使用它们提供的服务。使用@ComponentScan注解,可以减少手动配置Spring应用程序上下文的工作量,简化Spring配置。

3、@Configuration

等同于Spring的XML配置文件的使用。

使用Java代码可以检查类型安全。

4、@EnableAutoConfiguration

自动配置

5、@RestController

该注解是@Controller@ResponseBody的合集,表示这是个控制器Bean,并且是将函数的返回值直接填入HTTP响应体5中,是REST风格的控制器

6、@Autowired

实现自动导入。

7、@PathVariable

实现获取参数。

8、@JsonBackReference

实现解决嵌套外链问题。

9、@RepositoryRestResourcepublic

配合spring-boot-starter-data-rest使用。

二、Lombok注解

1、@Data

自动生成getter/setter、toString、equals、hashCode方法,以及不带参数的构造方法。

2、@NonNull

帮助处理NullPointerException

3、@CleanUp

自动管理资源,不用在finally中添加资源的close方法

4、@Getter/@Setter

自动生成getter/setter方法

5、@Value

用于注解final类

三、Spring注解

1、@RequestMapping

@RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。Spring MVC和Spring WebFlux都通过RquestMappingHandlerMapping和RequestMappingHndlerAdapter两个类来提供对@RequestMapping注解的支持。

@RequestMapping注解对请求处理类中的请求处理方法进行标注;@RequestMapping注解拥有以下的六个配置属性:

value:映射的请求URL或者其别名

method:兼容HTTP的方法名

header:根据HTTP Header的存在、缺省或值对请求进行过滤

consume:设定在HTTP请求正文中允许使用的媒体类型

product:在HTTP响应体中允许使用的媒体类型

2、@RequestBody

@RequestBody在处理请求方法的参数列表中使用,它可以将请求主体中的参数绑定到一个对象中,请求主体参数是通过HttpMessageConverter传递的,根据请求主体中的参数名与对象的属性名进行匹配并绑定值。此外,还可以通过@Valid注解对请求主体中的参数进行校验。

3、@GetMapping

@GetMapping注解用于处理HTTP GET请求,并将请求映射到具体的处理方法中。具体来说,@GetMapping是一个组合注解,它相当于是@RequestMapping(method=RequestMethod.GET)的快捷方式。

4、@PostMapping

@PostMapping注解用于处理HTTP POST请求,并将请求映射到具体的处理方法中。@PostMapping与@GetMapping一样,也是一个组合注解,它相当于是@RequestMapping(method=HttpMethod.POST)的快捷方式。

5、@PutMapping

@PutMapping注解用于处理HTTP PUT请求,并将请求映射到具体的处理方法中,@PutMapping是一个组合注解,相当于是@RequestMapping(method=HttpMethod.PUT)的快捷方式。

6、@DeleteMapping

@DeleteMapping注解用于处理HTTP DELETE请求,并将请求映射到删除方法中。@DeleteMapping是一个组合注解,它相当于是@RequestMapping(method=HttpMethod.DELETE)的快捷方式。

7、@PatchMapping

@PatchMapping注解用于处理HTTP PATCH请求,并将请求映射到对应的处理方法中。@PatchMapping相当于是@RequestMapping(method=HttpMethod.PATCH)的快捷方式。

8、@ControllerAdvice

@ControllerAdvice是@Component注解的一个延伸注解,Spring会自动扫描并检测被@ControllerAdvice所标注的类。@ControllerAdvice需要和@ExceptionHandler、@InitBinder以及@ModelAttribute注解搭配使用,主要是用来处理控制器所抛出的异常信息。

首先,我们需要定义一个被@ControllerAdvice所标注的类,在该类中,定义一个用于处理具体异常的方法,并使用@ExceptionHandler注解进行标记。

此外,在有必要的时候,可以使用@InitBinder在类中进行全局的配置,还可以使用@ModelAttribute配置与视图相关的参数。使用@ControllerAdvice注解,就可以快速的创建统一的,自定义的异常处理类。

9、@Controller

@Controller是@Component注解的一个延伸,Spring会自动扫描并配置被该注解标注的类。

四、Spring Bean注解

1、@ComponentScan

@Configuration
@ComponentScan(basePackages="com.example")
public class AppConfig {
    // ...
}
 
@Configuration
@ComponentScan(basePackageClasses={Service1.class, Service2.class})
public class AppConfig {
    // ...
}
 

@ComponentScan注解用于配置Spring需要扫描的被组件注解注释的类所在的包。可以通过配置其basePackages属性或者value属性来配置需要扫描的包路径。value属性是basePackages的别名。

2、@Service

@Service
public class UserServiceImpl implements UserService {
    // ...
}
 

@Service注解是@Component的一个延伸(特例),它用于标注业务逻辑类。与@Component注解一样,被此注解标注的类,会自动被Spring所管理。

3、@Repository

@Repository注解也是@Component注解的延伸,与@Component注解一样,被此注解标注的类会被Spring自动管理起来,@Repository注解用于标注DAO层的数据持久化类。

4、@Bean

@Service
public class MyService {
    // Service implementation
}
 
@Configuration
public class MyConfiguration {

    @Bean
    public MyService myService() {
        return new MyService();
    }
}
 

@Bean注解主要的作用是告知Spring,被此注解所标注的类将需要纳入到Bean管理工厂中。@Bean注解的用法很简单,在这里,着重介绍@Bean注解中initMethod和destroyMethod的用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值