探索Spring最常用的30个注解

简介: 探索Spring最常用的30个注解

前言:

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

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

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

1-10 Spring常用注解解析

  1. @Autowired - 自动注入
@Autowired
private MyService myService;
  1. @Controller - 控制器
@Controller
public class MyController {
    // Controller code
}
  1. @Service - 服务层
@Service
public class MyService {
    // Service code
}
  1. @Repository - 数据仓库
@Repository
public class MyRepository {
    // Repository code
}
  1. @RequestMapping - 请求映射
@Controller
@RequestMapping("/my")
public class MyController {
    // Controller code
}
  1. @GetMapping - GET请求映射
@Controller
@RequestMapping("/my")
public class MyController {
    @GetMapping("/info")
    public String getInfo() {
        // Method code
    }
}
  1. @PostMapping - POST请求映射
@Controller
@RequestMapping("/my")
public class MyController {
    @PostMapping("/create")
    public String create() {
        // Method code
    }
}
  1. @PathVariable - 路径变量
@Controller
@RequestMapping("/my")
public class MyController {
    @GetMapping("/info/{id}")
    public String getInfo(@PathVariable Long id) {
        // Method code
    }
}
  1. @RequestParam - 请求参数
@Controller
@RequestMapping("/my")
public class MyController {
    @GetMapping("/info")
    public String getInfo(@RequestParam String name) {
        // Method code
    }
}
  1. @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
}
  1. @Bean - 定义Bean
@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}
  1. @ComponentScan - 组件扫描
@Configuration
@ComponentScan("com.example")
public class AppConfig {
    // Configuration code
}
  1. @Value - 注入属性值
@Component
public class MyComponent {
    @Value("${my.property}")
    private String property;
}
  1. @Qualifier - 限定符注入
@Autowired
@Qualifier("myServiceImpl")
private MyService myService;
  1. @Profile - 环境配置
@Configuration
@Profile("dev")
public class DevConfig {
    // Dev configuration code
}
  1. @Scope - Bean作用域
@Component
@Scope("prototype")
public class MyComponent {
    // Component code
}
  1. @Lazy - 懒加载
@Component
@Lazy
public class MyComponent {
    // Component code
}
  1. @Async - 异步方法
@Service
public class MyService {
    @Async
    public void asyncMethod() {
        // Async method code
    }
}
  1. @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
    }
}
  1. @Cacheable - 缓存数据
@Service
public class MyService {
    @Cacheable("myCache")
    public String getCachedData() {
        // Cached data retrieval code
    }
  1. @CacheEvict - 清除缓存
@Service
public class MyService {
    @CacheEvict("myCache")
    public void clearCache() {
        // Cache clearing code
    }
}
  1. @Validated - 参数验证
@RestController
public class MyController {
    @PostMapping("/validate")
    public ResponseEntity<String> validateData(@RequestBody @Validated MyDto myDto) {
        // Validation code
    }
}
  1. @ExceptionHandler - 异常处理
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(MyException.class)
    public ResponseEntity<String> handleMyException(MyException ex) {
        // Exception handling code
    }
}
  1. @ModelAttribute - 模型属性
@Controller
public class MyController {
    @ModelAttribute("myData")
    public MyData prepareData() {
        // Model attribute preparation code
    }
}
  1. @CookieValue - 获取Cookie值
@Controller
public class MyController {
    @GetMapping("/getCookie")
    public String getCookieValue(@CookieValue(name = "myCookie") String cookieValue) {
        // Cookie value retrieval code
    }
}
  1. @RequestHeader - 获取请求头
@Controller
public class MyController {
    @GetMapping("/getHeader")
    public String getHeaderValue(@RequestHeader("myHeader") String headerValue) {
        // Header value retrieval code
    }
}
  1. @ResponseStatus - 设置响应状态
@RestController
public class MyController {
    @ResponseStatus(HttpStatus.CREATED)
    @PostMapping("/createResource")
    public void createResource() {
        // Resource creation code
    }
}
  1. @PropertySource - 加载属性文件
@Configuration
@PropertySource("classpath:my.properties")
public class MyConfig {
    // Configuration code
}

结语

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

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

相关文章
|
5天前
|
前端开发 Java 开发者
SpringBoot(五)之新增注解
用于 Spring MVC 测试,仅加载 Web 层。
28 10
|
4天前
|
Java API 数据格式
Spring三兄弟:Spring、Spring Boot、Spring Cloud的100个常用注解大盘点
Spring三兄弟:Spring、Spring Boot、Spring Cloud的100个常用注解大盘点
|
6天前
|
Java 数据库连接 数据库
Springboot整合mybatis注解版(202005)
Springboot整合mybatis注解版(202005)
14 3
|
6天前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
16 2
|
1天前
|
前端开发 Java Spring
蓝易云 - 详解SpringBoot的常用注解
以上就是SpringBoot中常用的一些注解,正确理解和使用这些注解,可以帮助我们更好地使用SpringBoot框架进行开发。
7 0
|
2天前
|
Java Spring 容器
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
5 0
|
2天前
|
XML Java 数据库
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
6 0
|
2天前
|
XML Java 数据格式
Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
5 0
|
2天前
|
XML druid Java
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
6 0
|
2天前
|
前端开发 Java Spring
蓝易云 - 详解SpringBoot的常用注解
以上就是SpringBoot中常用的一些注解,正确理解和使用这些注解,可以帮助我们更好地使用SpringBoot框架进行开发。
3 0