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();