controller层

  1. @Controller 表明该类是一个控制器类,可以和@RequestMapping来配合使用拦截请求,如果不注明请求的方式,默认是拦截 get 和 post 请求。如果后端只关注处理数据,返回 json 的话,需要配合 @ResponseBody来使用
    而这样的话会导致一个开发一个接口我们需要3个注解来完成,因此我们可以使用@RestController来替代@Controller@RequestMapping必须指定对应的请求方式,因此有了如下几个注解 | 普通风格 | Rest风格 | | —- | —- | | @RequestMapping(value=“”,method = RequestMethod.GET) | @GetMapping(value =“”) | | @RequestMapping(value=“”,method = RequestMethod.POST) | @PostMapping(value =“”) | | @RequestMapping(value=“”,method = RequestMethod.PUT) | @PutMapping(value =“”) | | @RequestMapping(value=“”,method = RequestMethod.DELETE) | @DeleteMapping(value =“”) |

  2. @AutoWired Spring的自动装配

  3. @CrossOrigin 主要是为了解决跨域访问的问题。可以为整个 controller配置启动跨域,也可以在方法级别启用
  4. @PathVariable 路径变量,指定变量的获取是从路径中获取的
    image.png
  5. @RequestBody 指定变量的获取是从请求体中获取的
    image.png
  6. @RequestParam 指定变量是以键值对的方式跟在接口后面的
    image.png
    image.png

    Service层

  7. **@Service** 用来标注业务层组件

  8. **@Resource** @Resource@Autowired一样都可以用来装配bean,都可以标注字段上,或者方法上。 @resource注解不是spring提供的,是属于J2EE规范的注解。

    Dao层 持久层

    1、@Repository:@Repository注解类作为DAO对象,管理操作数据库的对象。
    总得来看,@Component, @Service, @Controller, @Repository是spring注解
    注解后可以被spring框架所扫描并注入到spring容器来进行管理
    @Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能。
    2、@Transactional: 通过这个注解可以声明事务,可以添加在类上或者方法上。
    一般情况是我们会在servcie层添加了事务注解。
    事务的开启只能在public方法上
    JPA操作数据库的时候,默认只允许查询操作,如果需要对数据进行操作(比如修改或删除),那么需要给servcie层添加事务注解。
    image.png
    3、@RestControllerAdvice 是 @ControllerAdvice 和 @ResponseBody的合集,可以将异常以json的格式返回数据。