SSM中各类注解的作用
Posted brent
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM中各类注解的作用相关的知识,希望对你有一定的参考价值。
@Mapper注解的作用?
此注解由mybatis框架提供,用于描述"数据持久层接口",当项目启动时
,系统底层会自动扫描启动类所在包以及子包中的类,假如发现某个接
口上使用@Mapper注解进行描述,底层会为这个接口创建一个实现类,
在实现类的内部定义基于SqlSession对象的会话过程。然后还会将这个
类的实例交给spring管理。
@Autowired注解的作用?
@Autowired注解由spring提供,可以描述属性,构造方法,set方法等,
用于告诉spring框架,为属性或方法参数采用一定的策略进行赋值操作(DI)。
默认Spring框架会基于@Autowired注解描述的属性类型、方法参数类型
进行对象的查找,假如找的对象只有一个,则直接注入。假如找到多个还会
基于属性名或方法参数名进行bean名字的匹配,匹配成功则直接注入,匹配
失败抛出NoSuchBeanDefinitionException这样的异常。当然也可以借助
@Qualifier配合@Autowired来指定要注入的bean的名字
Spring常见注解
@Bean
@Configuration
@Component注入bean对象
@Repository注解数据持久层
@Mapper数据持久层
@Mapper和@Repository的区别:
@Mapper=@Repository+@MapperScan
@mapper不需要设置扫描地址,mapper.xml里面的namespace属性对应相关的mapper类,spring动态生成Bean对象。
@repository则需要在启动类中通过@MapperScan注解来配置扫描包地址,然后生成dao层的bean对象
@service业务层
@controller控制层
@RestController=@Controller+@ResponseBody 直接
@Controller控制器层类
@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。
@RestControllerAdvice 注解描述的类 为spring web模块定义的全局异常处理类
当我们在@RestController/@Controller注解描述的类或父类中没有处理异常,则
系统会查找@RestControllerAdvice注解描述的全局异常处理类,可以通过此类中的
异常处理方法对异常进行处理。
@ExceptionHandler 注解描述的方法为异常处理方法
此注解中定义的异常类型
为此方法可以处理的异常类型(包含这个异常类型的子类类型)
@param e 此参数用于接收要处理的异常对象,通常会与@ExceptionHandler注解
中定义的异常类型相同,或者是@ExceptionHandler 注解中定义异常类型的父类
类型。
@PathVariable 用于获取请求url中{}内部的变量
@RequestBody 用于获取请求体中json格式的数据
@RequestParam 用于获取非json格式的请求参数数据
@RequestParam("required=true")注解,默认为true,客户端必须传递参数,否则会报400异常,("required=false"),参数可传可不传。
@DateTimeFormat 用于设置可以接收的日期格式字符串
使用pojo对象或者日期对象接收客户端传递的日期格式字符串时,假如需要设置可以处理的日期字符串格式,则需要使用@DateFormat注解对方法中日期类型的参数或pojo中的日期类型属性,set方法进行描述,用于约束客户端向服务端传递的日期格式的字符串,默认spring web模块只能处理客户端提交的yyyyy/MM/dd HH:mm:ss格式的日期字符串,可以注解在接收方法的参数中,pojo set方法上,pojo属性上。
@JsonFormat用于设置响应数据的日期格式
@JsonFormat注解描述属性或get方法时,用于告诉底层API,在将对象转换为json字符串时, 按照此注解中pattern属性指定的日期格式进行转换,其中timezone用于指定时区,此注解使用的是格林威治事件,需要timezone="GMT+8"进行转换@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
以上是关于SSM中各类注解的作用的主要内容,如果未能解决你的问题,请参考以下文章