当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/482694.html

相关文章:

  • Flink独立集群+Flink整合yarn
  • 动态规划 之 简单多状态 dp 问题 算法专题
  • qt QPixmapCache详解
  • Redis中的持久化
  • Unity 如何优雅的限定文本长度, 包含对特殊字符,汉字,数字的处理。实际的案例包括 用户昵称
  • SMO+PLL滑膜观测器、MARS模型参考自适应观测器simulink仿真
  • 例题解析:利用异或运算(XOR)找出单独的数
  • 如何处理微信小程序大量未捕获的异常
  • C#-StringBuilder
  • SQLI LABS | Less-39 GET-Stacked Query Injection-Intiger Based
  • linux安装zookeeper和kafka集群
  • 洞悉 Linux 系统运行细节,使用 atop 监测和回看系统负载状态
  • “双十一”电商狂欢进行时,在AI的加持下看网易云信IM、RTC如何助力商家!
  • Python调用企业微信的扫一扫
  • 速盾:CDN和OBS能共用流量包吗?
  • 第8章 利用CSS制作导航菜单
  • C# 集合与泛型
  • el-date-picker 设置开始时间和结束时间
  • 【Docker】 常用命令
  • docker compose - 设置名字
  • 工业拍卖平台、信息发布、租赁商城平台系统适用于全行业解决方案。
  • 一个win32 / WTL下多线程库(CThread类)的使用心得
  • 使用wordpress搭建简易的信息查询系统
  • PAT甲级 1076 Forwards on Weibo(30)
  • 揭开 gRPC、RPC 、TCP和UDP 的通信奥秘
  • 使用Web Worker来处理多线程操作,以及如何避免主线程卡顿。
  • 杂谈:业务说的场景金融是什么?
  • 在vscode实现用和Chrome开发者工具中相同的快捷键进行面板切换
  • 【ESP32+MicroPython】硬件控制基础
  • Python学习从0到1 day26 第三阶段 Spark ① 数据输入