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;
    }

}

在上述代码中,@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);
    }

}

在上述代码中,该控制器类的所有请求都会以/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);
    }

}

在上述代码中,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);
    }

}

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