详细介绍:以上便是SpringBoot中一些常用的注解,它们能极大地简化开发流程。

SpringBoot常用注解有很多,下面为你介绍其中一部分:

  1. @SpringBootApplication

    • 这是SpringBoot应用的核心注解,可被视作@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解的组合。
    • 借助该注解,能开启自动配置功能,还能扫描组件。一般会把它加在主类上。
    • 示例如下:
      @SpringBootApplication
      public class Application
      {
      public static void main(String[] args) {
      SpringApplication.run(Application.class, args)
      ;
      }
      }
  2. @RestController

    • 此注解是@Controller和@ResponseBody的结合体,可用于创建RESTful风格的控制器。
    • 它会让返回值直接以JSON或XML的形式呈现。
    • 示例:
      @RestController
      public class HelloController
      {
      @GetMapping("/hello")
      public String hello() {
      return "Hello World!";
      }
      }
  3. @RequestMapping

    • 该注解用于映射HTTP请求,像路径、方法等都能进行映射。
    • 它有一些快捷的变体,例如@GetMapping、@PostMapping等。
    • 示例:
      @RestController
      public class UserController
      {
      @GetMapping("/users")
      public List<
      User> getUsers() {
      // 实现方法
      }
      }
  4. @Autowired

    • 这是一个依赖注入注解,能够自动装配Bean。
    • 它可以作用在构造函数、字段或者setter方法上。
    • 示例:
      @Service
      public class UserService
      {
      private final UserRepository userRepository;
      @Autowired
      public UserService(UserRepository userRepository) {
      this.userRepository = userRepository;
      }
      }
  5. @Service

    • 这是一个组件注解,用于标记服务层的组件。
    • 它能够被组件扫描机制识别。
    • 示例:
      @Service
      public class UserServiceImpl
      implements UserService {
      // 实现方法
      }
  6. @Repository

    • 此注解用于标记数据访问层的组件,也就是DAO组件。
    • 它还具备自动处理数据访问异常的功能。
    • 示例:
      @Repository
      public class UserRepositoryImpl
      implements UserRepository {
      // 实现方法
      }
  7. @Component

    • 这是一个通用的组件注解,可用于标记任意Spring组件。
    • 它是其他组件注解(如@Service、@Repository)的父注解。
    • 示例:
      @Component
      public class MyComponent
      {
      // 类内容
      }
  8. @Configuration

    • 该注解用于定义配置类,其作用类似于XML配置文件。
    • 搭配@Bean注解使用,能够定义Bean。
    • 示例:
      @Configuration
      public class AppConfig
      {
      @Bean
      public MyService myService() {
      return new MyServiceImpl();
      }
      }
  9. @Bean

    • 此注解用于在配置类中声明Bean。
    • 它会替代XML中的标签。
    • 示例:
      @Configuration
      public class AppConfig
      {
      @Bean
      public DataSource dataSource() {
      return new DriverManagerDataSource("jdbc:mysql://localhost:3306/mydb", "user", "password");
      }
      }
  10. @Value

    • 该注解用于注入配置属性。
    • 它支持从配置文件(如application.properties)中读取值。
    • 示例:
      @Component
      public class MyComponent
      {
      @Value("${app.name}")
      private String appName;
      }
  11. @ConfigurationProperties

    • 此注解用于绑定配置属性到Java对象。
    • 它适合处理结构化的配置。
    • 示例:
      @ConfigurationProperties(prefix = "app")
      public class AppProperties
      {
      private String name;
      private int port;
      // getter和setter
      }
  12. @EnableAutoConfiguration

    • 该注解用于启用SpringBoot的自动配置功能。
    • 一般情况下,它会和@SpringBootApplication一起使用。
    • 示例:
      @EnableAutoConfiguration
      public class Application
      {
      // 类内容
      }
  13. @ComponentScan

    • 此注解用于指定Spring扫描组件的包路径。
    • 要是没有明确指定,就会扫描当前类所在的包及其子包。
    • 示例:
      @ComponentScan(basePackages = "com.example.demo")
      public class Application
      {
      // 类内容
      }
  14. @PathVariable

    • 该注解用于从URL路径中获取变量。
    • 示例:
      @GetMapping("/users/{id}")
      public User getUser(@PathVariable Long id) {
      // 实现方法
      }
  15. @RequestParam

    • 此注解用于从URL参数中获取值。
    • 示例:
      @GetMapping("/users")
      public List<
      User> getUsers(@RequestParam(required = false) String name) {
      // 实现方法
      }
  16. @RequestBody

    • 该注解用于将HTTP请求的body映射到Java对象。
    • 示例:
      @PostMapping("/users")
      public User createUser(@RequestBody User user) {
      // 实现方法
      }
  17. @ExceptionHandler

    • 此注解用于处理控制器中抛出的异常。
    • 示例:
      @ExceptionHandler(NotFoundException.class)
      public ResponseEntity<
      String> handleNotFoundException(NotFoundException ex) {
      return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
      }
  18. @ControllerAdvice

    • 该注解用于定义全局的异常处理和数据绑定。
    • 示例:
      @ControllerAdvice
      public class GlobalExceptionHandler
      {
      @ExceptionHandler(Exception.class)
      public ResponseEntity<
      String> handleException(Exception ex) {
      return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Something went wrong");
      }
      }
  19. @Async

    • 该注解用于开启方法的异步执行。
    • 要配合@EnableAsync一起使用。
    • 示例:
      @Service
      public class MyService
      {
      @Async
      public CompletableFuture<
      String> process() {
      // 异步处理
      return CompletableFuture.completedFuture("Done");
      }
      }
  20. @Scheduled

    • 此注解用于创建定时任务。
    • 要配合@EnableScheduling一起使用。
    • 示例:
      @Service
      public class MyService
      {
      @Scheduled(fixedRate = 5000)
      public void performTask() {
      // 定时执行的任务
      }
      }
  21. @ConditionalOnProperty

    • 该注解用于根据配置属性来决定是否加载某个Bean。
    • 示例:
      @Configuration
      @ConditionalOnProperty(name = "feature.enabled", havingValue = "true")
      public class FeatureConfig
      {
      // 配置内容
      }
  22. @ConditionalOnMissingBean

    • 此注解用于在没有指定类型的Bean时才创建该Bean。
    • 示例:
      @Bean
      @ConditionalOnMissingBean
      public MyService myService() {
      return new MyServiceImpl();
      }
  23. @TestConfiguration

    • 该注解用于测试环境下的配置类。
    • 示例:
      @TestConfiguration
      public class TestConfig
      {
      @Bean
      public MyService mockService() {
      return Mockito.mock(MyService.class)
      ;
      }
      }
  24. @SpringBootTest

    • 此注解用于集成测试SpringBoot应用。
    • 示例:
      @SpringBootTest
      public class MyIntegrationTest
      {
      @Autowired
      private MyService myService;
      @Test
      public void testService() {
      // 测试逻辑
      }
      }
  25. @DataJpaTest

    • 该注解用于测试JPA数据访问层。
    • 示例:
      @DataJpaTest
      public class UserRepositoryTest
      {
      @Autowired
      private UserRepository userRepository;
      @Test
      public void testFindByUsername() {
      // 测试逻辑
      }
      }

以上便是SpringBoot中一些常用的注解,它们能极大地简化开发流程。

posted @ 2025-07-25 09:26  wzzkaifa  阅读(12)  评论(0)    收藏  举报