Spring & Spring Boot 常用注解总结

在 Java 开发中,Spring 和 Spring Boot 框架广泛应用于企业级应用开发。这两个框架提供了丰富的注解,使得开发更加高效和便捷。本文将对 Spring 和 Spring Boot 中常用的注解进行总结。

一、Spring 常用注解

1. @Component

  • 作用:用于将普通的 Java 类标记为 Spring 中的 Bean。被标记的类将被 Spring 容器管理,可以通过依赖注入的方式使用。

  • 示例

    @Component
    public class UserService {
    //...
    }

2. @Autowired

  • 作用 :自动装配 Bean。当一个类的成员变量、方法参数或构造函数参数被标记为 @Autowired 时,Spring 容器会自动将匹配类型的 Bean 注入到该成员变量、方法参数或构造函数中。
复制代码
@Component
public class OrderService {
    @Autowired
    private UserService userService;
    //...
}

3. @Service

  • 作用:用于标注业务逻辑层的组件。通常用于表示服务类,这些类通常包含业务逻辑和处理数据的方法。

  • 示例

    @Service
    public class UserServiceImpl implements UserService {
    //...
    }

4. @Repository

  • 作用:用于标注数据访问层的组件。通常用于表示数据访问对象(DAO)类,这些类负责与数据库进行交互。

  • 示例

    @Repository
    public class UserDaoImpl implements UserDao {
    //...
    }

5. @Controller

  • 作用:用于标注表示层的组件。通常用于表示控制器类,这些类处理 HTTP 请求并返回响应。

  • 示例

    @Controller
    public class UserController {
    @Autowired
    private UserService userService;
    //...
    }

6. @RequestMapping

  • 作用:用于将 HTTP 请求映射到特定的方法上。可以在类级别和方法级别使用。

  • 示例

    @Controller
    @RequestMapping("/users")
    public class UserController {
    @RequestMapping("/list")
    public String listUsers() {
    //...
    return "user/list";
    }
    }

7. @PathVariable

  • 作用 :用于获取 URL 中的路径变量。当 URL 中的部分内容是动态的时,可以使用 @PathVariable 注解将其绑定到方法参数上。

  • 示例

    @Controller
    @RequestMapping("/users")
    public class UserController {
    @RequestMapping("/{id}")
    public String getUserById(@PathVariable("id") Long id) {
    //...
    return "user/detail";
    }
    }

8. @RequestParam

  • 作用:用于获取 HTTP 请求中的参数。可以将请求参数绑定到方法参数上。

  • 示例

    @Controller
    @RequestMapping("/users")
    public class UserController {
    @RequestMapping("/search")
    public String searchUsers(@RequestParam("keyword") String keyword) {
    //...
    return "user/search";
    }
    }

二、Spring Boot 常用注解

1. @SpringBootApplication

  • 作用 :这是一个组合注解,包含了 @Configuration@EnableAutoConfiguration@ComponentScan。用于标记一个主类,该主类是 Spring Boot 应用的入口点。

  • 示例

    @SpringBootApplication
    public class Application {
    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }

2. @RestController

  • 作用 :用于标注控制器类,该类中的方法将返回 JSON、XML 或其他格式的响应。相当于 @Controller@ResponseBody 的组合。

  • 示例

    @RestController
    @RequestMapping("/api/users")
    public class UserApiController {
    //...
    }

3. @GetMapping

  • 作用 :用于将 HTTP GET 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.GET) 的简化形式。

  • 示例

    @RestController
    @RequestMapping("/api/users")
    public class UserApiController {
    @GetMapping("/{id}")
    public User getUserById(@PathVariable("id") Long id) {
    //...
    return user;
    }
    }

4. @PostMapping

  • 作用 :用于将 HTTP POST 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.POST) 的简化形式。
  • 示例

收起

java

复制

复制代码
@RestController
@RequestMapping("/api/users")
public class UserApiController {
    @PostMapping
    public User createUser(@RequestBody User user) {
        //...
        return user;
    }
}

5. @PutMapping

  • 作用 :用于将 HTTP PUT 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.PUT) 的简化形式。
  • 示例

收起

java

复制

复制代码
@RestController
@RequestMapping("/api/users")
public class UserApiController {
    @PutMapping("/{id}")
    public User updateUser(@PathVariable("id") Long id, @RequestBody User user) {
        //...
        return user;
    }
}

6. @DeleteMapping

  • 作用 :用于将 HTTP DELETE 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.DELETE) 的简化形式。

  • 示例

    @RestController
    @RequestMapping("/api/users")
    public class UserApiController {
    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable("id") Long id) {
    //...
    }
    }

7. @Value

  • 作用:用于注入配置文件中的属性值。可以将配置文件中的属性值注入到类的成员变量、方法参数或构造函数参数中。

  • 示例

    @Component
    public class MyService {
    @Value("${my.property}")
    private String myProperty;
    //...
    }

8. @ConfigurationProperties

  • 作用:用于将配置文件中的属性绑定到 Java 对象上。可以将一组相关的属性绑定到一个 Java 对象中,方便管理和使用配置。

  • 示例

    @Component
    @ConfigurationProperties(prefix = "myapp")
    public class AppConfig {
    private String property1;
    private int property2;
    // getters and setters
    }

以上是 Spring 和 Spring Boot 中常用的注解总结。这些注解可以大大提高开发效率,使代码更加简洁和易于维护。在实际开发中,可以根据具体需求选择合适的注解来实现功能。

相关推荐
毕设源码-赖学姐6 分钟前
【开题答辩全过程】以 基于javaweb的外卖点餐系统的设计与实现为例,包含答辩的问题和答案
java
沛沛老爹9 分钟前
从Web到AI:行业专属Agent Skills生态系统技术演进实战
java·开发语言·前端·vue.js·人工智能·rag·企业转型
程农31 分钟前
基于Java的报名系统
java·开发语言
Jackson@ML2 小时前
2026最新版Sublime Text 4安装使用指南
java·python·编辑器·sublime text
毕设源码-朱学姐2 小时前
【开题答辩全过程】以 校园闲置物品交易平台的设计与实现为例,包含答辩的问题和答案
java·eclipse
chilavert3182 小时前
技术演进中的开发沉思-326 JVM:内存区域与溢出异常(上)
java·jvm
纪莫2 小时前
技术面:如何让你的系统抗住高并发的流量?
java·redis·java面试⑧股
spencer_tseng2 小时前
Unlikely argument type for equals(): JSONObject seems to be unrelated to String
java·equals
爱敲代码的小鱼3 小时前
事务核心概念与隔离级别解析
java·开发语言·数据库
小冷coding3 小时前
【Java】遇到微服务接口报错导致系统部分挂掉时,需要快速响应并恢复,应该怎么做呢?如果支付服务出现异常如何快速处理呢?
java·开发语言·微服务