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

相关推荐
Theodore_10224 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
冰帝海岸5 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象5 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了6 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic6 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王6 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康6 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
qq_17448285757 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
转世成为计算机大神7 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式