SpringBoot学习笔记(三)
一、SpringBoot项目常用注解
1、@RestController
@RestController注解,对具有返回类型的controller类使用。相当于@ResponseBody + @Controller。
使用@RestController的目的在于使用传统方法是返回数据格式都为json,需要使用@ResponseBody注解,但是@RestController修饰的类下的所有方法,全部都是返回json格式;
2、@EnableAutoConfiguration
@EnableAutoConfiguration注解的作用是开启自动装备,加载jar包。
3、@Api,@ApiResponses,@ApiOperation
@Api,@ApiResponses,@ApiOperation,对于以下注解,主要为注释说明作用。
4、@GetMapping和@PostMapping
@GetMapping和@PostMapping,显示请求路径,相当于@RequestMapping(method = RequestMethod.GET)。
5、@RunWith()
@RunWith()是一个运行器,括号中指明运行环境。
6、@Component和@Configuration
@Component和@Configuration注解的区别,两者备注后皆可作为配置类,但是@Configuration注解时,生成当前对象的子类Class,并对方法拦截,第二次调用car()方法时直接从BeanFactory之中获取对象,所以得到的是同一个对象。
二、SpringBoot全局捕获异常与日志记录
1、整合全局捕获异常
全局捕获异常:整个Web请求项目全局捕获异常。
应用场景:当程序中的某个方法在执行时发生异常,那么在前端界面可能会以404或者500的形式报错,对用户而言,这样的反馈体验很差,所以我们在编写存在异常情况的方法时往往会加入try,catch语句,以此来处理异常情况,但是随着项目的不断扩大,需要处理的异常也越来越多,我们不可能对千万个方法依次编写。因此需要全局捕获异常技术。
全局捕获异常原理:使用AOP技术,采用异常通知。
@ControllerAdvice注解会扫描指定的包,@ExceptionHandler注解负责判断异常类型,上图中的方法负责对运行时异常进行反馈。
2、整合log4j日志记录
导入log4j的jar包
3、使用AOP统一处理Web请求日志
@Poincut扫描出controller请求,采用AOP的前置通知进行拦。