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

相关推荐
Mahir085 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
RyFit6 小时前
SpringAI 常见问题及解决方案大全
java·ai
石山代码6 小时前
C++ 内存分区 堆区
java·开发语言·c++
绝知此事7 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
无风听海7 小时前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠7 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
德思特8 小时前
从 Dify 配置页理解 RAG 的重要参数
java·人工智能·llm·dify·rag
YOU OU8 小时前
Spring IoC&DI
java·数据库·spring
один but you9 小时前
从可变参数到 emplace:现代 C++ 性能优化的核心组合
java·开发语言
是码龙不是码农9 小时前
ThreadPoolExecutor 7 个核心参数详解
java·线程池·threadpool