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

相关推荐
TT哇3 分钟前
【Java EE初阶】计算机是如何⼯作的
java·redis·java-ee
paopaokaka_luck8 分钟前
基于SpringBoot+Vue的电影售票系统(协同过滤算法)
vue.js·spring boot·后端
陌殇殇3 小时前
SpringBoot整合SpringCache缓存
spring boot·redis·缓存
小林学习编程6 小时前
Springboot + vue + uni-app小程序web端全套家具商场
前端·vue.js·spring boot
ladymorgana6 小时前
【Spring boot】tomcat Jetty Undertow对比,以及应用场景
spring boot·tomcat·jetty
IT_10246 小时前
Spring Boot项目开发实战销售管理系统——系统设计!
大数据·spring boot·后端
Fireworkitte7 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
weixin-a153003083167 小时前
【playwright篇】教程(十七)[html元素知识]
java·前端·html
DCTANT7 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
Touper.7 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端