SpringBoot注解使用

基本注解(注解在类上)

  • @Controller: 控制层

  • @Mapper: 数据库接口

  • @Service: 业务层

实体类自动生成set/get方法的注解

  • @Data (需要添加lombok的依赖)

自动注入的注解

1
2
@Autowired
TestMapper testMapper;

Web请求处理相关注解

  • @RequestMapping: Web请求路径和请求方法的映射

    eg. @RequestMapping(value = "/login", method = RequestMethod.POST)
    value: 请求路径
    method: 请求方法(GET,POST,PUT,DELETE),分别对应@GetMapping,@PostMapping,@PutMapping,@DeleteMapping
    其中PUT方法表示更新,DELETE表示删除
    可以使用省略参数名的写法: @RequestMapping("/login")

  • @ResponseBody: 返回数据到HTTP响应中,与@RequestMapping一起使用

    • 没有@ResponseBody注解时返回值是跳转页面:
      1
      2
      3
      4
      @RequestMapping("/login")
      public String toLogin() {
      return "login";
      }
    • 当使用@RestController注解控制器时,相当于@Controller+@ResponseBody,此时该类中所有方法均返回数据
  • @RequestParam: 请求单个参数

    eg. public String login(@RequestParam(value = "userName", required = true) String userName){}
    参数类型可以是:String,int,Object

  • @PathVariable: 请求路径中的参数

    1
    2
    3
    @RequestMapping("task/{id}")
    @ResponseBody
    public Map<String,Object> task(@PathVariable("id") long id){}
  • @RequestBody: 请求参数为json

    eg. public String login(@RequestBody User user){}

数据库操作相关注解

  • @Select: 查询
    1
    2
    @Select("select * from task where taskid like concat('%',#{item},'%') or taskname like concat('%',#{item},'%')")
    List<Task> selectTasks(@Param("item")String item);
  • @Insert: 插入
    1
    2
    @Insert("insert into task(taskid,taskname) values(#{taskid},#{taskname})")
    public int insertTask(@Param("taskid")String taskid,@Param("taskname")String taskname);
  • @Update: 更新
    1
    2
    @Update("update task set taskname=#{taskname} where taskid=#{taskid}")
    public int updateTask(@Param("taskid")String taskid,@Param("taskname")String taskname);
  • @Delete: 删除
    1
    2
    @Delete("delete from task where taskid=#{taskid}")
    public int deleteTask(@Param("taskid")String taskid);
  • @SelectProvider: 通过方法提供查询语句
    1
    @SelectProvider(type=SqlMapper.class,method="dynamicSql")
  • 列表查询语句
    1
    2
    3
    4
    @Insert({"<script>",
    "insert into task",
    "values <foreach item='item' index='index' collection='tasklist' separator=','>(#{item.taskid},#{item.taskname})</foreach>",
    "</script>"})

获取配置文件中的值的注解

1
2
@Value("${analysis.uploadUrl}")
String uploadDir;

对应application.yml中:

1
2
analysis:
uploadUrl: D:/upload
Author: Giftbear
Link: https://giftbear.github.io/2022/07/28/SpringBoot注解使用/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.