SSM中各类注解的作用

brent
@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")

阅读 144

这个人很懒,什么都没有留下!

1 声望
2 粉丝
0 条评论
你知道吗?

这个人很懒,什么都没有留下!

1 声望
2 粉丝
宣传栏