本文已参与「新人创作礼」活动,一起开启掘金创作之路。
controller(控制逻辑)层常用注解:Controller层负责在页面和程序之间传输数据的,用作页面跳转,页面有用户填写表单数据,点击提交按钮,页面的表单数据传入service层。
@RestController
@RequestMapping
@Resource
@Autpwried
@RestController:由@Controller和@ResponseBody组成。
@Controller:该注解将当前修饰的类注入SpringBoot容器,使得从该类所在的项目跑起来的过程中,该类被实例化。
@ResponseBody:该注解的作用就是指该类中所有的API接口返回的数据进行格式化,无论是什么类型的数据,都会以Json字符串的形式返回给客户端。
@RequestMapping:该注解用于映射请求,也就是说,通过该注解来指定控制器可以处理那些URL请求。
延展出两个注解:@GetMapping和@POSTMapping
@GetMapping:该注解是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。同理,@POSTMapping是@RequestMapping(method = RequestMethod.POST)的缩写,决定了接口的请求方式。
@Resource和@Autowried都是用于依赖注入(依赖注入到容器中,容器(IOC容器)是一个设计模式,也是一个对象,当把某个类放入到容器中,可以解析出这个类的实例。所有依赖注入就是把有依赖关系的类放入到容器中,然后解析出这个类的实例),其中@Resource是按照name进行依赖注入,当找不到与name匹配的bean时才按照类型进行匹配,但是当name属性一旦指定,就只会按照名称进行装配,@Autowried是按照Type进行注入。
推荐使用@Resource注解在字段上,因这个注解是属于J2EE的,减少了与spring的耦合。
Service(业务逻辑)层常用注解:负责对数据的处理,如果没有数据处理的任务,制作数据传递,传递至Dao层。
@Service
@Transactional
@Service:该注解与Controller层的@Controller一样,将当前修饰的类注入SpringBoot容器,只是@Controller一般用在Controller层,而@Service一般用在Service层。相似功能的还有@Repository注解用于view层,以及@Component是通用的自动注入注解。
@Transactional:声明式事务,该注解可以用在接口、接口方法、类以及类方法上。这里主要说明用在类上。当该注解用于类上时,该类的所有public方法都讲具有改类型的事务属性,如果用在protected或者private的方法上,不会报错,但是该注解不会生效。改注解只能对在被Spring容器扫描到的类下的方法生效。
Dao(数据库操作)层常用注解:负责对数据向数据库增删改查操作(基于mybatis对数据进行增删改查)
=====================================
mybatis-plus相关注解
@TableName(表名注解,标识实体类对应的表):实现实体类型和数据库中的表实现映射。其中name属性指定数据库表名称,不指定则以实体类名称作为表名
mp在定义xml时,对于typeHandler属性,只支持写在两个地方:
- 定义在
resultMap里,作用于查询结果的封装 - 定义在
insert和update语句的#{property}中的property后面(例:#{property,typehandler=xxx.xxx.xxx}),并且只作用于当前设置值
@TableField(字段注解(非主键)):常用属性有exist(是否为数据库表字段,默认true,可以不指定)、typeHandler(类型处理器 (该默认值不代表会按照该值生效),可以不指定);
\