SpringBoot常用注解

SpringBoot常用注解

Spring Boot 是一个基于 Java 的框架,用于简化新 Spring 应用程序的初始设置和配置。它允许开发者快速地创建独立运行、生产级别的 Spring 应用程序。Spring Boot 中有许多常用的注解,这些注解可以帮助开发者更方便地管理和配置应用程序。下面是一些最常用的 Spring Boot 注解:

@SpringBootApplication:

这个注解是一个组合注解,包含了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan。
@Configuration 表示该类可以作为配置类,替代 XML 配置文件。
@EnableAutoConfiguration 启用 Spring Boot 的自动配置机制,根据 classpath 中的 jar 包来猜测并配置应用程序。
@ComponentScan 自动扫描并注册带有@Component、@Service、@Controller 等注解的 Bean。

@RestController:

用于标记控制器层组件,表示这是一个 RESTful Web 服务的控制器。
它实际上是 @Controller 和 @ResponseBody 的组合注解,意味着该类中的所有方法都会返回 JSON 或 XML 数据,而不是视图。

@RequestMapping:

用于映射 HTTP 请求到处理方法上。
可以作用于类级别(定义基础路径)或方法级别(定义具体请求路径)。
支持 GET、POST、PUT、DELETE 等 HTTP 方法。
**

1. 基本用法

**
类级别
在类级别使用 @RequestMapping 可以定义基础路径,所有该类中的方法都会继承这个基础路径。

@RequestMapping("/api")
public class UserController {
    // 方法级别的映射
    @RequestMapping("/users")
    public List<User> getUsers() {
        // 返回用户列表
    }
}

在这个例子中,/api/users 将被映射到 getUsers 方法。
方法级别
在方法级别使用 @RequestMapping 可以定义具体的请求路径和方法类型。

@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<User> getUsers() {
    // 返回用户列表
}

2. 支持的 HTTP 方法

@RequestMapping 可以指定支持的 HTTP 方法,如 GET、POST、PUT、DELETE 等。

@RequestMapping(value = "/users", method = RequestMethod.POST)
public User createUser(@RequestBody User user) {
    // 创建用户
}

3. 路径变量

使用 @PathVariable 可以从 URL 中提取变量

@RequestMapping(value = "/users/{id}", method = RequestMethod.GET)
public User getUserById(@PathVariable("id") Long id) {
    // 根据 ID 获取用户
}

4. 请求参数

使用 @RequestParam 可以从请求参数中提取值。

@RequestMapping(value = "/users/search", method = RequestMethod.GET)
public List<User> searchUsers(@RequestParam("name") String name) {
    // 根据名字搜索用户
}

5. 请求体

使用 @RequestBody 可以从请求体中读取数据。

@RequestMapping(value = "/users", method = RequestMethod.POST)
public User createUser(@RequestBody User user) {
    // 创建用户
}

6. 生产环境中的最佳实践

@GetMapping("/users")
public List<User> getUsers() {
    // 返回用户列表
}

@PostMapping("/users")
public User createUser(@RequestBody User user) {
    // 创建用户
}

@GetMapping("/users/{id}")
public User getUserById(@PathVariable("id") Long id) {
    // 根据 ID 获取用户
}

@PutMapping("/users/{id}")
public User updateUser(@PathVariable("id") Long id, @RequestBody User user) {
    // 更新用户
}

@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable("id") Long id) {
    // 删除用户
}

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping:

这些注解是 @RequestMapping 的快捷方式,分别对应 HTTP 的 GET、POST、PUT、DELETE 方法。
例如,@GetMapping(“/users”) 相当于 @RequestMapping(value = “/users”, method = RequestMethod.GET)。

@PathVariable:

用于获取 URL 中的变量值。
例如,在 @GetMapping(“/users/{id}”) 中,可以通过 @PathVariable(“id”) 来获取 URL 中的 id 值。

@RequestParam:

用于获取请求参数的值。
例如,如果请求包含 ?name=value,则可以通过 @RequestParam(“name”) 来获取 name 参数的值。

@Autowired:

用于自动装配 Bean。
可以作用于字段、构造器、setter 方法等,Spring 会自动寻找匹配的 Bean 并注入。

@Service:

用于标记业务层组件。
类似于 @Component,但更加具体,表明这是一个服务类。

@Repository:

用于标记数据访问层组件。
类似于 @Component,但更加具体,表明这是一个数据访问类。

@Entity:

用于标记 JPA 实体类。
表示该类将映射到数据库表。

@Transactional:

用于管理事务。
可以作用于类级别或方法级别,确保方法内的操作在一个事务中执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值