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

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


http://www.kler.cn/a/390753.html

相关文章:

  • Electron 项目启动外部可执行文件的几种方式
  • 微信小程序=》基础=》常见问题=》性能总结
  • LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略
  • 信息网络安全——AES加密算法
  • 【异质图学习】异构图神经网络中的自监督学习:基于语义强度和特征相似度的对比学习
  • 【量化交易笔记】14.模拟盘效果
  • 前端零基础学习Day-Eight
  • 使用 Java 将 byte[] 转换为 File 对象并上传到外部服务器
  • 【已解决】Postman:Get请求传JSON数据
  • Kafka面试题(三)
  • html的week控件 获取周(星期)的第一天(周一)和最后一天(周日)
  • Pandas | 数据分析时将特定列转换为数字类型 float64 或 int64的方法
  • scikit-learn学习Day30
  • Java基础08(类与对象)
  • Java字符串的处理
  • SSE (Server-Sent Events) 服务器实时推送详解
  • 力扣-Hot100-哈希【算法学习day.30】
  • HTMLCSS: 日落卡片
  • MySQL核心业务大表归档过程
  • Attention is all you need详细解读
  • STM32问题集
  • ES5 和 ES6 数组的操作方法
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • 小水电远程集控运维系统简介及应用价值
  • Unity WebGL交互通信
  • 【数字静态时序分析】复杂时钟树的时序约束SDC写法