spring常见注解:

标注类上的注解:

@Data : 标注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法

@AllARrgsConstructor 标注在类上 相当于全参构造

@NoARrgsConstructor 标注在类上 相当于无参构造

@Component //用于实例化对象可以用在所有的类上,一般标注在不属于三层上的时候相当于<bean id="" class=""/>

@Controller //标注在表示层类上

@Service //标注在业务层的类上

@Repository //标注在持久层的类上

@Scope //标注在类上,用于指定Bean的作用范围(单例和多例)相当于配置文件中的<bean scope="">

相当于<bean init-mothod="init" destroy-method="destroy">

@ControllerAdvice//标注在类上,声明当前类是一个专门处理异常的类

@RestController //复合注解:相当于ResponseBody+Controller

@Component //此注解标注在类上 用于组件扫描 相当于<context: component-scan base-package="项目下包名"/>

@PropertySource //标注在类上,用于专门读取配置文件到Java中(用于引入properties配置文件)

@Import //在一个配置类中导入其它配置类的内容

@Configuration //被此注解标注的类,会被spring容器默认为配置类,作用:当spring容器启动的时候自动扫描并加载所有配置类,然后将配置类中的Bean放入spring容器中

@RunWith(SPringJunit4ClassRunner.class) //切换运行器,换成spring的运行器,它可以自动启动spring环境

@ContextConfiguration(classes= 配置类 . class)//向运行器传递xml配置文件 相当于 @ContextConfiguration("Classpath: applicationContext.xml")

@Aspect //标注在增强类上,切面注解 @PointCut //切点表达式 相当于exception:"execution(*com.公司名.service.impl * . * (..))"

@Before //前置通知-在切点之前打印日志

@afterReturning //后置通知-在切点方法正常结束之后打印日志 @afterThrowing //异常通知-在切点方法异常的时候打印日志 @after //在切点方法运行的最后打印日志

@Around //环绕通知

@EnableAspectAutoProxy //激活切面自动代理 相当于 < aop : aspectj - AutoProxy / >

@EnableTransactionManagement //激活事务管理 相当于<tx: annotation -driven / >

标注方法上的注解:

@Bean 只能标注在方法上,声明使用此方法创建一个对象存入spring容器中

@PostConstruct 标注在方法上,表示对象创建之后执行

@PreDestroy 标注在方法上,表示对象销毁之前执行

@Autowired 自动装配 可以标注在对象属性上和set方法上 当标注在属性上的时候,属性上对应的set方法可以省略不写,spring会在IOC容器中按照属性类型寻找如找到一个则进行注入,如找到多个或没找到会报错 相当于:<property name="" ref="">同@Qualifier

@Qualifier 跟@Autowired联合使用 表示按照类型匹配的基础上再按照名称匹配

@Value ,bean的 简单属性注入 相当于 <property name="" value="">

@DateTimeFormat::接收Date类型数据,相当于springMVC底层完成string-->date

@JsonForMat ("pattern="yyyy-MM-dd",timezone="Asia/Shanghai")

@RequestParam:标注在方法的参数前,用于对传入的参数做一些限制

value:默认的属性用于指定前端传入的参数名称

require:用于指定参数是否为必传

defaultValue:当参数非必传参数且前端没有传入参数时指定一个默认值

@ExceptionHandler:标注在方法上,声明当前方法可以处理的异常

@PostMapping::仅仅接收POST请求,有请求体

@GetMapping:仅仅接收GET请求,没有请求体

@DeletMapping:仅仅接收删除请求:有请求体

@PutMapping:仅仅接收更新请求,有请求体

@PathVariable:标注在请求参数之前,用于从请求路径中取值赋值给方法参数;占位符 {}

用于类和方法上的注解:

@RequestMapping:用于处理url映射的注解,可标注在类上和方法上,用于类上则表示类中的所有响应的请求的方法都是以该地址为父路径

@RuestBody:实现接收http请求的数据将json转换为java对象,此注解可以标注在类上,代表所有方法上都有

@ResponseBody:实现将controller方法返回的对象转化为json对象响应给客户

@Transactional //通过此注解的属性定义事务管理器的参数;如果写在类上代表所有的方法都有;如果方法上都写了 则方法的优先级最高

相当于<tx:annotation-driven transaction-mananger=“tansactionManager" />

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐