前言
当前互联网公司 Java 开发大概率绕不开 Spring 全家桶,也意味着绕不注解,我记得有一次面试官问我注解,一开口就三连炮,是什么,有什么用,你会怎么实现。我特么蒙蔽了,平时不就是 Ctrl C + Ctrl V 么?痛定思痛后,整理了平时开发用的注解,以为进一步分享总结其原理。
一、Controller 层注解
-
@RestController : @RestController Spring4.0之后新增的, 注解相当于 @Controller + @ResponseBody 合在一起的作用。
@Controller 是 Spring 框架提供的注解。它标识的类,该类代表控制器类(控制层/表现层)。
这里控制层里面的每个方法,都可以去调用 @Service 标识的类(业务逻辑层)
用 @ResponseBody 标记 Controller 类中的方法。
把 return 的结果变成JSON 对象返回。(如果没有这个注解,这个方法只能返回要跳转的路径即跳转的html/JSP页面。有这个注解,可以不跳转页面,只返回JSON数据)
-
@RequestMapping : 注解提供“路由”信息。是一个用来处理请求地址映射的注解,可用于类或方法上。
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
用于方法上,常用两个属性,value 和 method ,method 可以指定 GET、POST、PUT、DELETE 等。
//作用类上
@RequestMapping("/pay")
public class PaymentController{
//作用方法上
@RequestMapping(value="/count", method = RequestMethod.GET)
public CountMony getCount() {
//代码
}
}
- @Slf4j : 注解在类上,可以在指定位置打印出日志,方便后期运维调试找 BUG。
- @CrossOrigin:该注解用来处理跨域问题的。
- @Api :对一个类的说明和描述,比如属性 value - 字段说明 description - 注释说明这个类。
- @Autowired :自动装配,为修饰的类注入“灵魂”,Spring 扫描到该注解,然后根据类型在 IOC 容器中找到匹配的类注入。
二、Service 层
- @Service : 作用在类层面,@Service 通常作用在业务层
- @Slf4j :同上。(实现类这一层日志很多)
- @Autowired:同上。(引入接口类会用到)
- @ApiResponses : 用于表示一组响应
- @ApiResponse : 用在 @ApiResponses中,一般用于表达一个错误的响应信息
@ApiResponses({
@ApiResponse(code = 200,message = "请求成功"),
@ApiResponse(code=400,message = "请求参数没填好"),
@ApiResponse(code= 404,message = "请求的资源不存在"),
@ApiResponse(code = 500,message =" 服务器出错")
})
- @PostMapping : post 方式请求映射到指定方法,等价于 @RequestMapping(method = RequestMethod.POST)。
- @GetMapping : get 方式请求映射到指定的方法,等价于 @RequestMapping(method = RequestMethod.GET)
三、其他
未完待续