@RestController
@RestController=@Controller+@ResponseBody
作用:类上有@RestController注解时,表示当前类下所有的方法返回值作为响应数据。方法的返回值如果是一个pojo对象或集合时,会转换为json格式,再响应给浏览器
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
System.out.println("Hello World ~");
return "Hello World ~";
}
}
@RequestBody
当方法的返回值的json格式时,要使用@RequestBody注解
@PostMapping("/depts")
public Result add(@RequestBody Dept dept){
//方法体
}
@RequestMapping
作用:在类和方法级别,用于指定请求的 URL 路径、HTTP 方法(GET、POST、PUT、DELETE 等)、请求参数等信息。
@RequestMapping用在类级别时,它为类中的所有方法指定了一个公共的基础 URL 路径:
@RestController
@RequestMapping("/api")
public class MyController {
// 类中方法的请求路径都以 /api 为基础
}
@RequestMapping在方法级别使用:getUsers方法将处理/api/users的 GET 请求。
@RestController
@RequestMapping("/api")
public class MyController {
@RequestMapping("/users")
public List<User> getUsers() {
// 处理获取用户列表的逻辑
return userList;
}
}
@RequestParam
当请求参数名和controller方法中的形参名不一致时,可以使用注解@RequestParam
@RestController
public class RequestController {
// http://localhost:8080/simpleParam?name=Tom&age=20
// 请求参数名:name
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name",required = false) String username , Integer age ){
System.out.println(username+" : "+age);
return "OK";
}
}
@Mapper
@Mapper是Mybatis提供的一个注解,用于将一个接口标记为映射器接口。
映射器接口将Java方法与SQL语句关联起来。每个映射器接口方法对应于一个SQL语句,该SQL语句可以使用@Select、@Update、@Insert、@Delete等注解在接口方法中直接定义。
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User getUserById(int id);
}
//userMapper接口通过@Mapper注解被标记为MyBatis的Mapper接口,
//并且定义了一个getUserById方法,该方法使用@Select注解指定了获取用户信息的SQL查询。
@Slf4j
@Slf4j是lombok库提供的注解,主要用于在 Java 类中方便地引入日志对象(通常是 Logback、Log4j 等日志框架)
@Autowired
IOC容器:在传统的编程中,对象的创建和依赖关系的管理通常由开发者在代码中手动完成;而在使用 IOC 容器的情况下,这些工作由容器来负责。
@Autowired ,就可以实现程序运行时IOC容器自动注入需要的依赖对象
public class DeptController {
@Autowired
private DeptService deptService;
}
如果不使用@Autowired就是这样写:
DeptService deptService = new DeptServiceImpl;
@PathVariable
@PathVariable是Spring 框架中用于从请求的 URL 路径中提取参数值的注解。
@DeleteMapping("/depts/{id}")
public Result delete(@PathVariable Integer id){
//方法体
}