探索Spring最常用的30个注解

发布时间:2024年01月03日

前言:

欢迎来到探索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<String, String> 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<String> validateData(@RequestBody @Validated MyDto myDto) {
            // Validation code
        }
    }
    
  5. @ExceptionHandler - 异常处理

    @ControllerAdvice
    public class GlobalExceptionHandler {
        @ExceptionHandler(MyException.class)
        public ResponseEntity<String> 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的世界中越走越远,创造出更加出色的应用! 🌺📚

文章来源:https://blog.csdn.net/weixin_44976692/article/details/135360419
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。