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

Posted mizhiniurou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[技术博客] 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();

以上是关于[技术博客] Springboot的Controller类使用的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot技术栈搭建个人博客项目准备

springboot 写单元测试方法

SpringBoot个人博客发布系统

基于Spring Boot技术栈 博客系统企业级前后端实战 渐进式讲解+Thymeleaf+Elasticsearch+多种数据库

用springboot搭建一个个人博客

SpringBoot跨域CORS设置:实现根据来源地址返回对应的Access-Control-Allow-Origin允许网址