相关推荐recommended
探索Spring最常用的30个注解
作者:mmseoamin日期:2024-01-19

目录

      • 1-10 Spring常用注解解析
      • 11-20 Spring进阶注解深度解析
      • 21-30 Spring进阶注解深度解析
      • 结语

        前言:

        欢迎来到探索Spring注解的奇妙之旅!在这篇博客中,我们将深入研究Spring框架中最常用的30个注解,揭示它们的作用和用法,助你更好地掌握Spring的强大功能。

        Spring作为一个广泛应用的Java框架,注解是其核心特性之一,为开发人员提供了便捷、灵活的方式来配置和管理应用。无论你是初学者还是有一定经验的开发者,这篇博客都将为你解密Spring注解的奥秘,为你提供实用而有深度的注解应用技巧。

        让我们一同踏上Spring注解之旅,深入了解这些神奇的注解,为你的Spring应用增色不少。祝你在这趟注解之旅中有所收获,希望这篇博客成为你学习Spring注解的得力指南! 🌼🌐

        1-10 Spring常用注解解析

        1. @Autowired - 自动注入

          @Autowired
          private MyService myService;
          
        2. @Controller - 控制器

          @Controller
          public class MyController {
              // Controller code
          }
          
        3. @Service - 服务层

          @Service
          public class MyService {
              // Service code
          }
          
        4. @Repository - 数据仓库

          @Repository
          public class MyRepository {
              // Repository code
          }
          
        5. @RequestMapping - 请求映射

          @Controller
          @RequestMapping("/my")
          public class MyController {
              // Controller code
          }
          
        6. @GetMapping - GET请求映射

          @Controller
          @RequestMapping("/my")
          public class MyController {
              @GetMapping("/info")
              public String getInfo() {
                  // Method code
              }
          }
          
        7. @PostMapping - POST请求映射

          @Controller
          @RequestMapping("/my")
          public class MyController {
              @PostMapping("/create")
              public String create() {
                  // Method code
              }
          }
          
        8. @PathVariable - 路径变量

          @Controller
          @RequestMapping("/my")
          public class MyController {
              @GetMapping("/info/{id}")
              public String getInfo(@PathVariable Long id) {
                  // Method code
              }
          }
          
        9. @RequestParam - 请求参数

          @Controller
          @RequestMapping("/my")
          public class MyController {
              @GetMapping("/info")
              public String getInfo(@RequestParam String name) {
                  // Method code
              }
          }
          
        10. @ResponseBody - 返回JSON格式数据

          @Controller
          @RequestMapping("/my")
          public class MyController {
              @GetMapping("/info")
              @ResponseBody
              public Map getInfo() {
                  // Method code
              }
          

        11-20 Spring进阶注解深度解析

        1. @Configuration - 配置类

          @Configuration
          public class AppConfig {
              // Configuration code
          }
          
        2. @Bean - 定义Bean

          @Configuration
          public class AppConfig {
              @Bean
              public MyService myService() {
                  return new MyServiceImpl();
              }
          }
          
        3. @ComponentScan - 组件扫描

          @Configuration
          @ComponentScan("com.example")
          public class AppConfig {
              // Configuration code
          }
          
        4. @Value - 注入属性值

          @Component
          public class MyComponent {
              @Value("${my.property}")
              private String property;
          }
          
        5. @Qualifier - 限定符注入

          @Autowired
          @Qualifier("myServiceImpl")
          private MyService myService;
          
        6. @Profile - 环境配置

          @Configuration
          @Profile("dev")
          public class DevConfig {
              // Dev configuration code
          }
          
        7. @Scope - Bean作用域

          @Component
          @Scope("prototype")
          public class MyComponent {
              // Component code
          }
          
        8. @Lazy - 懒加载

          @Component
          @Lazy
          public class MyComponent {
              // Component code
          }
          
        9. @Async - 异步方法

          @Service
          public class MyService {
              @Async
              public void asyncMethod() {
                  // Async method code
              }
          }
          
        10. @Scheduled - 定时任务

          @Service
          public class MyService {
              @Scheduled(fixedRate = 5000)
              public void scheduledMethod() {
                  // Scheduled method code
              }
          }
          

        21-30 Spring进阶注解深度解析

        1. @Transaction - 事务管理

          @Service
          public class MyService {
              @Transactional
              public void performTransaction() {
                  // Transactional method code
              }
          }
          
        2. @Cacheable - 缓存数据

          @Service
          public class MyService {
              @Cacheable("myCache")
              public String getCachedData() {
                  // Cached data retrieval code
              }
          }
          
        3. @CacheEvict - 清除缓存

          @Service
          public class MyService {
              @CacheEvict("myCache")
              public void clearCache() {
                  // Cache clearing code
              }
          }
          
        4. @Validated - 参数验证

          @RestController
          public class MyController {
              @PostMapping("/validate")
              public ResponseEntity validateData(@RequestBody @Validated MyDto myDto) {
                  // Validation code
              }
          }
          
        5. @ExceptionHandler - 异常处理

          @ControllerAdvice
          public class GlobalExceptionHandler {
              @ExceptionHandler(MyException.class)
              public ResponseEntity handleMyException(MyException ex) {
                  // Exception handling code
              }
          }
          
        6. @ModelAttribute - 模型属性

          @Controller
          public class MyController {
              @ModelAttribute("myData")
              public MyData prepareData() {
                  // Model attribute preparation code
              }
          }
          
        7. @CookieValue - 获取Cookie值

          @Controller
          public class MyController {
              @GetMapping("/getCookie")
              public String getCookieValue(@CookieValue(name = "myCookie") String cookieValue) {
                  // Cookie value retrieval code
              }
          }
          
        8. @RequestHeader - 获取请求头

          @Controller
          public class MyController {
              @GetMapping("/getHeader")
              public String getHeaderValue(@RequestHeader("myHeader") String headerValue) {
                  // Header value retrieval code
              }
          }
          
        9. @ResponseStatus - 设置响应状态

          @RestController
          public class MyController {
              @ResponseStatus(HttpStatus.CREATED)
              @PostMapping("/createResource")
              public void createResource() {
                  // Resource creation code
              }
          }
          
        10. @PropertySource - 加载属性文件

          @Configuration
          @PropertySource("classpath:my.properties")
          public class MyConfig {
              // Configuration code
          }
          

        结语

        感谢你的持续关注,希望这30个Spring注解能够为你的Spring项目开发提供更多便利和灵活性。Spring注解的丰富功能,让开发变得更加高效、简洁。

        期待下次与你一同探讨更多的Spring框架知识,愿你在Spring的世界中越走越远,创造出更加出色的应用! 🌺📚