Springboot项目中常用注解

Springboot相关注解

@EnableAspectJAutoProxy(exposeProxy = true)

用于启用AspectJ自动代理功能的注解。它通常与Spring AOP一起使用,以在Spring应用程序中实现切面功能。

内部实现机制

当我们在配置类上添加@EnableAspectJAutoProxy注解时,Spring会通过@Import注解导入AspectJAutoProxyRegistrar类。
AspectJAutoProxyRegistrar类实现了ImportBeanDefinitionRegistrar接口,该接口允许开发人员动态地注册Bean定义。在AspectJAutoProxyRegistrar类中,它会注册一个名为AnnotationAwareAspectJAutoProxyCreator的Bean,这个Bean是Spring AOP的核心组件之一。
AnnotationAwareAspectJAutoProxyCreator是一个Bean后置处理器(BeanPostProcessor),它会在Spring容器初始化Bean之后对其进行处理。如果该Bean匹配某个切点表达式,AnnotationAwareAspectJAutoProxyCreator会为其创建一个代理对象,并将切面逻辑织入到该代理对象中。

@EnableTransactionManagement

用于启用基于注解的事务自动管理,可以在方法上添加@Transactional注解来声明事务。当你在配置类上使用 @EnableTransactionManagement 注解时,Spring框架会自动扫描带有 @Transactional 注解的方法,并在这些方法周围织入事务管理的逻辑。如果一个带有 @Transactional 注解的方法执行过程中出现了异常,Spring会自动回滚事务。这个注解的作用是简化事务管理的配置和使用,提高开发效率。
https://blog.youkuaiyun.com/Tanganling/article/details/134378603
@SpringBootApplication

@ServletComponentScan

用于启用对servlet组件的扫描,servlet三大组件 Servlet、Filter、Listener 在传统项目中需要在 web.xml 中进行相应的配置,spring使用三个注解@WebServlet、@WebFilter、@WebListener 写在对应的 Servlet、Filter、Listener 类上作为标识,从而不需要在 web.xml 中进行配置了。
但Springboot默认不对这三个注解进行扫描,需要在配置类上增加@ServletComponentScan这个注解。

@MapperScan(basePackages = {“com.xxx.mapper”})

用于开启Mybatis,
https://blog.youkuaiyun.com/qq_42187215/article/details/132650985

@ComponentScan(basePackages={“*”})

lombok @Data注解

通过注解的方式在编译期自动生成‌getter、setter方法、toString方法、equals方法和hashCode方法等常用方法,从而减少模板代码的编写。@Data注解是Lombok提供的一个复合注解,它结合了@Getter、@Setter、@ToString、@EqualsAndHashCode等多个注解的功能,使得开发者可以更加专注于业务逻辑的实现,而不是重复编写一些通用的代码。

Controller中的相关注解

@Controller

控制层注解,标识在类上,返回view

@RestController

同@Controller,返回json数据

@RequestMapping

标识在类或者方法上,表示访问地址,提供路由信息,URL和Controller的映射,是@GetMapping/@PostMapping的Get/Post的集合。
@GetMapping(value = “hello”) 等价于@RequestMapping(value = “hello”, method = RequestMethod.GET)

@ResponseBody

该注解的作用是将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。
当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。
如果返回值是字符串,那么直接将字符串写到客户端;如果是一个对象,会将对象转化为json串,然后写到客户端。
@Controller+@ResponseBody等于@RestController。

@RequestBody

作用于方法参数上,将请求参数绑定到request body中,通过HttpMessageConverter封装为具体的JavaBean。通俗点讲就是你在一个参数上加上该注解,spring就会将request body中的json/xml对象解析成该参数类型的Javabean对象。

@RequestParam

作用于方法参数上,将请求参数映射成指定类型

@PathVariable

作用于方法参数上,通过解析url中的占位符进行参数获取

@Validated

作用在类、方法和参数上,对传输的参数进行数据校验的注解实现对数据的约束,结合以下注解完成对数据的约束
数据校验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值