前言
初学Springboot的小伙伴应该对MVC三层结构都不陌生,MVC结构就像一家销售产品的公司,有身为市场销售人员:Controller层,与它直接对接的是公司的项目经理与工人Service层,进行与项目经理直接对接的是仓库管理员:Dao层,想了解更多介绍三层结构的小伙伴可以移步到《MVC增强组件》这篇文章。接下来主要介绍各层常用的注解。
一、Controller层
@Controller
@Controller标识的类,该类代表Controller类(Controller层)。
这里Controller层里面的每个方法,都可以去调用@Service标识的类(Service层)。
@ResponseBody
@ResponseBody的作用是将java对象转为json格式的数据,在该类中所有的api接口返回的数据都会以json字符串的形式返回给客户端。
@RestController
@RestController 是@Controller和@ResponseBody 的结合,你也可以立即为@RestController = @Controller + @ResponseBody。
@RequestMapping
@RequestMapping不仅能作用在控制器的方法上,还能作用在控制器类上。
@GetMapping
@GetMapping用来处理请求方法的GET类型。
@PostMapping
@PostMapping用来处理请求方法的POST类型。
二、Service层
@Service
@Service标识的类中的方法可以继续调用@Resposity标识的接口实现类(Dao层)。
@Transactional
@Transactional 是声明式事务管理编程中使用的注解,他的作用,简而言之,正常提交事务,异常回滚事务。
三、Dao层
@Repository
@repository的作用是注解接口。
四、通用注解
@Component
@Component是Spring中的一个注解,它的作用就是实现Bean的注入。在Java的web开发中,提供3个@Component注解衍生注解(功能与@component一样)分别是:
- @Controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层;
- @Service 服务(注入Dao) 用于标注服务层,主要用来进行业务的逻辑处理;
- @Repository(实现Dao访问) 用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件。
@Override
@override的作用,通俗来说就是告诉编译器,下面的方法是重写父类的方法。
@Autowired
@Autowired的作用是对成员变量、方法和构造函数进行标注,来完成自动装配的工作。简单来说,以三层模型举例,@Autowired就是市场销售人员与项目经理、项目经理与仓库工人之间联系的媒介,即Controller层与Service层、Service层与Dao层之间联系的桥梁。