当前位置:实例文章 » JAVA Web实例» [文章]SpringBoot 常用注解辨析

SpringBoot 常用注解辨析

发布人:shili8 发布时间:2025-02-06 19:00 阅读次数:0

**Spring Boot 常用注解辨析**

Spring Boot 是一个非常流行的框架,用于快速开发和部署 Java 应用程序。它提供了许多便捷的注解,使得开发者能够更轻松地编写代码。在本文中,我们将逐一介绍 Spring Boot 中常用的注解,并附带示例代码和注释。

###1. @SpringBootApplication`@SpringBootApplication` 是 Spring Boot 应用程序的核心注解。它是 `@Configuration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 的组合,用于启用 Spring Boot 的自动配置功能。

java@SpringBootApplicationpublic class DemoApplication {
 public static void main(String[] args) {
 SpringApplication.run(DemoApplication.class, args);
 }
}


###2. @Configuration`@Configuration` 注解用于标记一个 Java 类作为 Spring 配置类。它可以用来定义 Bean、配置数据源等。

java@Configurationpublic class MyConfig {
 @Bean public DataSource dataSource() {
 return DataSourceBuilder.create().build();
 }
}


###3. @EnableAutoConfiguration`@EnableAutoConfiguration` 注解用于启用 Spring Boot 的自动配置功能。它会根据应用程序的依赖项自动配置相关组件。

java@EnableAutoConfigurationpublic class DemoApplication {
 // ...
}


###4. @ComponentScan`@ComponentScan` 注解用于扫描指定包下的组件(如 Bean、Controller 等)。

java@ComponentScan(basePackages = "com.example.demo")
public class DemoApplication {
 // ...
}


###5. @RestController`@RestController` 注解是 `@Controller` 和 `@ResponseBody` 的组合,用于标记一个控制器类。它表示该类的所有方法都返回 JSON 数据。

java@RestController@RequestMapping("/api")
public class MyController {
 @GetMapping("/hello")
 public String hello() {
 return "Hello, World!";
 }
}


###6. @RequestMapping`@RequestMapping` 注解用于指定一个控制器类或方法的映射规则。

java@RestController@RequestMapping("/api")
public class MyController {
 @GetMapping("/hello")
 public String hello() {
 return "Hello, World!";
 }
}


###7. @PathVariable`@PathVariable` 注解用于从 URL 中获取参数值。

java@RestController@RequestMapping("/api/{id}")
public class MyController {
 @GetMapping public String get(@PathVariable Long id) {
 return "ID: " + id;
 }
}


###8. @RequestParam`@RequestParam` 注解用于从 URL 中获取参数值。

java@RestController@RequestMapping("/api")
public class MyController {
 @GetMapping public String get(@RequestParam("name") String name) {
 return "Name: " + name;
 }
}


###9. @RequestBody`@RequestBody` 注解用于从请求体中获取 JSON 数据。

java@RestController@RequestMapping("/api")
public class MyController {
 @PostMapping public String post(@RequestBody User user) {
 return "User: " + user.getName();
 }
}


###10. @Autowired`@Autowired` 注解用于自动注入 Bean。

java@Servicepublic class MyService {
 @Autowired private MyRepository repository;
}

@Repositorypublic interface MyRepository {
 // ...
}


###11. @Transactional`@Transactional` 注解用于开启事务。

java@Service@Transactionalpublic class MyService {
 public void save() {
 // ...
 }
}


###12. @Value`@Value` 注解用于注入外部配置值。

java@RestController@RequestMapping("/api")
public class MyController {
 @Value("${my.value}")
 private String value;
 @GetMapping public String get() {
 return "Value: " + value;
 }
}


###13. @Profile`@Profile` 注解用于指定一个配置文件。

java@RestController@RequestMapping("/api")
public class MyController {
 @Value("${my.value}")
 private String value;
 @GetMapping public String get() {
 return "Value: " + value;
 }
}


###14. @ConditionalOnBean`@ConditionalOnBean` 注解用于检查 Bean 是否存在。

java@RestController@RequestMapping("/api")
public class MyController {
 @Autowired private MyService service;
 @GetMapping public String get() {
 return "Service: " + service.getName();
 }
}


###15. @ConditionalOnClass`@ConditionalOnClass` 注解用于检查类是否存在。

java@RestController@RequestMapping("/api")
public class MyController {
 @Autowired private MyService service;
 @GetMapping public String get() {
 return "Service: " + service.getName();
 }
}


###16. @ConditionalOnProperty`@ConditionalOnProperty` 注解用于检查属性是否存在。

java@RestController@RequestMapping("/api")
public class MyController {
 @Value("${my.value}")
 private String value;
 @GetMapping public String get() {
 return "Value: " + value;
 }
}


###17. @ConditionalOnResource`@ConditionalOnResource` 注解用于检查资源是否存在。

java@RestController@RequestMapping("/api")
public class MyController {
 @Autowired private MyService service;
 @GetMapping public String get() {
 return "Service: " + service.getName();
 }
}


###18. @ConditionalOnWebApplication`@ConditionalOnWebApplication` 注解用于检查是否是 Web 应用。

java@RestController@RequestMapping("/api")
public class MyController {
 @Autowired private MyService service;
 @GetMapping public String get() {
 return "Service: " + service.getName();
 }
}


###19. @ConditionalOnClass`@ConditionalOnClass` 注解用于检查类是否存在。

java@RestController@RequestMapping("/api")
public class MyController {
 @Autowired private MyService service;
 @GetMapping public String get() {
 return "Service: " + service.getName();
 }
}


###20. @ConditionalOnProperty`@ConditionalOnProperty` 注解用于检查属性是否存在。

java@RestController@RequestMapping("/api")
public class MyController {
 @Value("${my.value}")
 private String value;
 @GetMapping public String get() {
 return "Value: " + value;
 }
}


以上就是 Spring Boot 常用注解的介绍。这些注解可以帮助你快速开发和部署 Java 应用程序。

其他信息

其他资源

Top