springboot后端开发-常见注解及其用途
文章目录
- 1. 组件注解
- 2. 依赖注入注解
- 3. 配置类注解
- 4. 测试注解
- 5. 控制器注解
- 6. 安全和认证注解
- 7. 切面相关注解
- 8. API文档相关注解(需引入swagger)
- 9. 其他注解
在Spring Boot框架中,有许多常用的注解用来简化开发过程中的依赖注入、组件扫描、配置、安全控制等方面的工作。这些注解可以大致分为几类:
1. 组件注解
这些注解主要用于标记类或接口,表明它们是Spring容器中的组件,并可以进行自动装配。
- @Component:
通用组件注解
,可以用于任何非特殊类型的Java类。 - @Repository:用于数据访问层(DAO层)的组件。
- @Service:用于业务逻辑层的组件。
- @Controller:用于Web层的控制器组件。
- @RestController:结合了@Controller和@ResponseBody的功能,用于直接返回JSON数据的控制器。
- @ControllerAdvice:控制器切面标注。
2. 依赖注入注解
这些注解主要用于在类内部声明依赖关系,并由Spring框架负责实例化和注入。
- @Autowired:自动装配bean,可以用于字段、构造函数、setter方法或任意方法。
- @Qualifier:与@Autowired一起使用,用于消除模糊性,指定具体要注入的bean名称。
- @Resource:基于JNDI的查找服务,可以通过name或lookup-name来装配bean,也可以通过shared属性控制是否共享。
- @Inject:JSR-330标准注解,用于依赖注入。
- @Bean:用于在配置类中创建Spring容器管理的bean。
3. 配置类注解
这些注解用于声明配置类或开启某些特定功能的支持。
- @Configuration:声明一个配置类,可以包含@Bean方法。
- @EnableAutoConfiguration:开启自动配置,是Spring Boot自动配置的核心注解。
- @Import:导入一个或多个配置类。
- @PropertySource:从
指定资源
加载属性值。
4. 测试注解
这些注解主要用于简化Spring Boot应用的单元测试或集成测试。
- @RunWith(SpringRunner.class):与JUnit结合使用,用于启动Spring容器。
- @SpringBootTest:用于创建整个Spring应用上下文,适用于集成测试。
- @WebMvcTest:用于测试Web层,只会加载Spring MVC相关组件。
- @DataJpaTest:用于测试JPA相关代码。
5. 控制器注解
这些注解主要用于Web层的请求处理。
- @RequestMapping:标记类或方法,处理特定的HTTP请求。
- @GetMapping:处理HTTP GET请求。
- @PostMapping:处理HTTP POST请求。
- @PutMapping:处理HTTP PUT请求。
- @DeleteMapping:处理HTTP DELETE请求。
- @PatchMapping:处理HTTP PATCH请求。
- @ResponseBody:用于将方法的返回值直接写入HTTP响应体中。
- @RequestBody:用于将HTTP请求体中的内容绑定到方法参数上。
- @Validated:用于请求的数据对象的校验。
- @PathVariable:用于请求URI上的参数绑定。
6. 安全和认证注解
这些注解用于处理安全性和用户认证。
- @Secured:用于限制只有拥有特定权限的用户才能访问的方法或类。
- @PreAuthorize 和 @PostAuthorize:基于SpEL表达式来授权。
7. 切面相关注解
- @EnableAspectJAutoProxy:启用AspectJ自动代理功能。通常放在主配置类或启动类上。
- @Aspect:标记一个类为切面类,其中可以包含多个通知(Advice)。
- @Pointcut:定义一个切入点表达式,用于匹配目标对象中的连接点(Joinpoint)。
- @Before:声明前置通知。
- @After:声明后置通知。
- @AfterReturning:声明返回后通知。
- @AfterThrowing:声明异常后通知。
- @Around:声明环绕通知。
8. API文档相关注解(需引入swagger)
- @ApiModel:声明实体对象类。
- @ApiModelProperty:声明对象属性。
- @Api:声明一个接口类。
- @ApiOperation:声明一个具体接口。
- @ApiParam:声明接口参数属性。
9. 其他注解
还有一些注解用于特定的功能或场景:
- @Profile:用于指定配置文件,可以激活特定环境下的配置。
- @Cacheable、@CachePut 和 @CacheEvict:用于与Spring Cache集成,实现缓存功能。
- @Async:用于声明异步方法。
- @Scheduled:用于定时任务。
- @ExceptionHandler:声明一个全局异常处理方法(方法需声明在带有@ControllerAdvice注解的类当中)。
- @ResponseStatus:声明异常返回http编码(方法需声明在带有@ControllerAdvice注解的类当中)。
以上列举的只是部分常用注解,实际上Spring Boot框架中有更多的注解可供使用。这些注解共同作用于Spring Boot应用中,使得开发变得更加高效和便捷。后续还会继续补充…