一、启动注解
@SpringBootApplication
标识这是一个SpringBoot应用,用来开启Spring Boot 的各项功能
该配置等同于:@SPringleBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解的组合。
@SpringBootConfiguration
继承@Configuration注解,加载配置文件。
@EnableAutoConfiguration
开启自动配置功能。如:当前类路径下有 Mybatis 这个 JAR 包,MybatisAutoConfiguration 注解就能根据相关参数来配置 Mybatis 的各个 Spring Bean。
@ComponentScan
组件扫描和自动装配
二、Controller相关注解
@Controller
用于定义控制器类,由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般该注解在类中,通常需要配合注解@RequestMapping
@RestController
用于标注控制层组件,@ResponseBody和@Controller的合集
@ResponseBody
表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。注解配合@RequestMapping一起使用。
@RequestMapping
提供路由信息,负责URL到Controller中的具体函数的映射。
@GetMapping
用于将HTTP get请求映射到特定处理程序得方法注解
1、前端传递参数是object,如{id:'1',name:'222'}
后端参数接收,里面放置的是一个实体类。
@GetMapping(value = "/generatedData")
public Result<?> generatedData(ApplyObject applyObject) throws Exception {
}
2、前端传递参数是object,如xxx/generatedData/id
,id中放置的是具体的值
后端参数接收,需要使用@PathVariable String id
@GetMapping(value = "/generatedData/{id}")
public Result<?> generatedData(@PathVariable("id") String id) throws Exception {
}
3、前端传递参数是一个拼接的带?的字符串,如 xxx/generatedData?id=1&name=222
后端参数接收,需要使用@RequestParam(“id”) String id @RequestParam 加上问号后面对应的字段名称
@GetMapping(value = "/generatedData")
public Result<?> generatedData( @RequestParam("id") String id, @RequestParam("name") String name) throws Exception {
}
@PostMapping
1、前端传递参数是object,如{id:'1',name:'2222'}
后端参数接收,需要使用@RequestBody ApplyObject applyObject requestBody里面放置的是一个实体类
@PostMapping(value = "/generatedData")
public Result<?> generatedData(@RequestBody ApplyObject applyObject) throws Exception {
}
2、前端传递参数是object,如{id:'1',name:'2222'}
后端参数接收,需要使用@RequestBody ApplyObject applyObject requestBody里面放置的是一个实体类,不想用实体类接收的话,可以用Jsobject来接收 这个包package com.alibaba.fastjson;
@PostMapping(value = "/generatedData")
public Result<?> generatedData(@RequestBodyJSONObject jsonObject) throws Exception {
String id = jsonObject.getString("id");
String name = jsonObject.getString("name");
}
3、前端传递的参数是一个拼接带?的字符串,如xxx/generatedData?id=1&name=222
后端参数接收,需要使用@RequestParam(“id”) String id @RequestParam 加上问号后面对应的字段名称
@PostMapping(value = "/generatedData")
public Result<?> generatedData( @RequestParam("id") String id, @RequestParam("name") String name) throws Exception {
}
案例:
@GetMapping(value = "/queryUserById/{id}")
private Demo queryUserById(@PathVariable(value = "id") long id){
return demoService.queryUserById(id);
}
@PostMapping(value ="/queryUserById")
private Demo queryUserByID(@RequestBody Demo demo){
return demoService.queryUserById(demo.getId());
}
@GetMapping(value ="/queryUserById")
private Demo queryUserById(@RequestParam(value = "id") long id){
return demoService.queryUserById(id);
}