spring boot 是一个基于 Spring 框架的快速开发应用的框架,它提供了一套便捷的注解来简化开发流程。下面将介绍 spring boot 的核心注解。

1. @SpringBootApplication

@SpringBootApplication 是 spring boot 项目的入口注解,它是一个组合注解,包含了 @ComponentScan、@EnableAutoConfiguration 和 @SpringBootConfiguration 三个注解。

@ComponentScan 用于扫描被 @Component、@Service、@Controller 等注解标记的类,并将其纳入 Spring 的容器管理。

@EnableAutoConfiguration 用于自动配置 Spring 的配置文件,根据 classpath 下的依赖来判断需要添加哪些配置。

@SpringBootConfiguration 用于声明这是一个 Spring Boot 的配置类,定义了 Spring 的配置信息。

2. @RestController

@RestController 是一个组合注解,它是 @Controller 和 @ResponseBody 的结合体,用于声明该类是一个控制器,并且所有的方法返回的数据都是直接写入 HTTP 响应体中,而不是返回视图。

示例代码:

@RestController
@RequestMapping("/user")
public class UserController {

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        // 获取用户信息
        User user = userService.getUserById(id);
        return user;
    }

}
Java

在上述代码中,@RestController 注解将 UserController 类标记为一个控制器,@GetMapping 注解表示该方法处理 GET 请求,@PathVariable 注解用于获取 URL 路径中的参数。

3. @RequestMapping

@RequestMapping 是一个用来处理请求地址映射的注解,它可以用在类上和方法上。

在类上使用 @RequestMapping 注解可以用于设置根路径,以及共享的前缀。

示例代码:

@RestController
@RequestMapping("/user")
public class UserController {

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        // 获取用户信息
        User user = userService.getUserById(id);
        return user;
    }

    @PostMapping("/")
    public void createUser(@RequestBody User user) {
        // 创建用户
        userService.createUser(user);
    }

}
Java

在上述代码中,该控制器类的所有请求都会以 /user 为前缀,而 getUser 方法处理的是 /user/{id} 这样的请求。

在方法上使用 @RequestMapping 注解可以设置具体的请求路径和请求方式。

示例代码:

@RestController
@RequestMapping("/user")
public class UserController {

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        // 获取用户信息
        User user = userService.getUserById(id);
        return user;
    }

    @PostMapping("/")
    public void createUser(@RequestBody User user) {
        // 创建用户
        userService.createUser(user);
    }

}
Java

在上述代码中,getUser 方法处理的是 GET 请求,createUser 方法处理的是 POST 请求。

4. @Autowired

@Autowired 是 Spring 的核心注解之一,用于自动注入依赖。

示例代码:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        // 获取用户信息
        User user = userService.getUserById(id);
        return user;
    }

    @PostMapping("/")
    public void createUser(@RequestBody User user) {
        // 创建用户
        userService.createUser(user);
    }

}
Java

在上述代码中,@Autowired 注解将 userService 对象自动注入到 UserController 中。这样我们就可以在 UserController 中使用 userService 对象进行业务操作。