• [技术博客] Springboot的Controller类使用


    Springboot的Controller类使用

    @Controller:处理http请求。
    代码:

    @Controller
    public class QuestionController {
    ......
    }
    

    @AutoWired:byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。
    代码:

    @Autowired
    private QuestionMapper questionMapper;
    

    @GetMapping:是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写,用于将HTTP GET请求映射到特定处理程序方法的注释。
    代码:

    @GetMapping("/question")
    public String getQuestion(Model model) {
    ......
    model.addAttribute("questionList", questionList);
    ......
    return "questionAll";
    }
    

    以上代码响应到页面questionAll(可以直接使用Model封装内容,直接返回页面字符串)

    @PostMapping:是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写,用于将HTTP POST请求映射到特定处理程序方法的注释。
    代码:

    @PostMapping("/comment")
    public String insertComment(@RequestParam(name = "comment") String 	comment, @RequestParam(name = "id") int id , Model model) {
    ......
    return "questionDetail";
    }
    

    @RequestMapping:对于并未用到的@RequestMapping(method=RequestMethod.),由以上可知,@RequestMapping可以直接替代以上@GetMapping和@PostMapping两个注解,但是,以上两个注解并不能替代@RequestMapping,@RequestMapping相当于以上两个注解的父类。

    @RequestParam:获取请求参数的值。在SpringMVC框架中,可以通过定义@RequestMapping来处理URL请求。和@PathVariable一样,在处理URL的函数中,去获取URL中的参数。通过注解@RequestParam可以轻松的将URL中的参数绑定到处理函数方法的变量中。
    语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)value:参数名;required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错;defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值。
    代码:

    @GetMapping("/questionDetail")
    public String getQuestionDetail(@RequestParam(name = "id") int id, Model 	model) {
    }
    
    

    代码将Request参数名为"id"的值绑定到了处理函数的参数id上。

    Springboot的Mapper类使用

    @Mapper:这个用于数据库,需要扫描到对应的注解文件。
    代码:

    @Mapper
    public interface QuestionMapper {
    }
    

    @Select 是查询类的注解,所有的查询均使用这个
    @Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
    @Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值
    @Update 负责修改,也可以直接传入对象
    @Delete 负责删除
    代码:

    @Select("select * from questions where id = #{id}")
    Question findById(int id);
    
    @Select("select * from questions")
    List<Question> findAll();
    
  • 相关阅读:
    交叉编译环境软件搭建
    (C)struct结构体
    (C)字节对齐#pragma pack()
    常用bluetooth协议
    (C/C++)register关键字
    Android学习
    (C)*p++和*++p区别
    java文件末尾追加内容的两种方式
    java1.7集合源码阅读: Stack
    java1.7集合源码阅读: Vector
  • 原文地址:https://www.cnblogs.com/mizhiniurou/p/10987241.html
Copyright © 2020-2023  润新知