Spring Boot常用注解


Spring Boot常用注解

自己重新整理一下吧。

  1. 首先是最常见的,请求路径相关的,主要就是Mapping:

    • @RequestMapping:一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径

      1
      2
      3
      4
      5
      6
      @RestController
      @RequestMapping("/notice")
      public class SysNoticeController extends BaseController
      {
      ……
      }
    • @PostMapping:新建,insert数据

      1
      2
      3
      4
      5
      6
      @PostMapping
      public AjaxResult add(@Validated @RequestBody SysNotice notice)
      {
      notice.setCreateBy(SecurityUtils.getUsername());
      return toAjax(noticeService.insertNotice(notice));
      }
    • @GetMapping:获取,select数据

      1
      2
      3
      4
      5
      6
      7
      @GetMapping("/list")
      public TableDataInfo list(SysNotice notice)
      {
      startPage();
      List<SysNotice> list = noticeService.selectNoticeList(notice);
      return getDataTable(list);
      }
    • @PutMapping:修改,update数据

      1
      2
      3
      4
      5
      6
      @PutMapping
      public AjaxResult edit(@Validated @RequestBody SysNotice notice)
      {
      notice.setUpdateBy(SecurityUtils.getUsername());
      return toAjax(noticeService.updateNotice(notice));
      }
    • @DeleteMapping:删除,delete数据

      1
      2
      3
      4
      5
      @DeleteMapping("/{noticeIds}")
      public AjaxResult remove(@PathVariable Long[] noticeIds)
      {
      return toAjax(noticeService.deleteNoticeByIds(noticeIds));
      }
  2. 其次是各个层次的,标明这个类属于什么类型的:

    • @SpringBootApplication:启动类,是个组合注解,里面包括@Configuration,@EnableAutoConfiguration,@ComponentScan等

      1
      2
      3
      4
      5
      6
      7
      8
      9
      @Target(ElementType.TYPE)
      @Retention(RetentionPolicy.RUNTIME)
      @Documented
      @Inherited
      @SpringBootConfiguration
      @EnableAutoConfiguration
      @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
      @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
      public @interface SpringBootApplication {……}
    • @Controller:返回一整个页面,View

    • @RestController:控制层组件,包含@Controller和@ResponseBody,一般返回JSON

      1
      2
      3
      4
      5
      6
      @Target({ElementType.TYPE})
      @Retention(RetentionPolicy.RUNTIME)
      @Documented
      @Controller
      @ResponseBody
      public @interface RestController {……}
    • @Service:业务层组件

    • @Configuration:配置类

    • @Component:组件类,泛指组件,组件不好归类可以使用这个

  3. 参数注解:

    • @PathVariable:路径变量。参数与大括号里的名字一样要相同

      1
      2
      3
      4
      RequestMapping("user/get/mac/{macAddress}")
      public String getByMacAddress(@PathVariable String macAddress){
        //do something;
        }
    • @RequestBody:返回结果直接写入HTTP response body中

  4. 功能性注解:

    • @Autowired:自动注入

      1
      2
      @Autowired
      private ISysNoticeService noticeService;
    • @EnableAutoConfiguration:启用自动配置

    • @ComponentScan:指定路径下扫描组件,如果扫描到有@Component @Controller @Service等这些注解的类,则把

      这些类注册为bean

    • @Bean:方法上,返回的对象注入到IOC容器中

这些差不多够他喝一壶了吧。。。感觉最常用的都有了。


文章作者: SongX64
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 SongX64 !
  目录