Spring Boot 常用注解及使用方式 ai问答

在Spring Boot工程中,有许多注解被用来简化配置和声明组件的行为。以下是一些常见的Spring Boot注解及其主要用途:

1. **@SpringBootApplication**

  • **用途**:用在主类上,标记这个类是一个Spring Boot应用。

  • **内容**:该注解是`@SpringBootConfiguration`、`@EnableAutoConfiguration`和`@ComponentScan`三个注解的组合。

2. **@ComponentScan**

  • **用途**:指定Spring扫描组件的包路径。

  • **例子**:`@ComponentScan(basePackages = "com.example.demo")`

3. **@Configuration**

  • **用途**:用于定义配置类,这些类包含了bean的定义。

4. **@Bean**

  • **用途**:在配置类中声明一个bean,并将其加入到Spring容器中。

  • **例子**:`@Bean public MyBean myBean() { return new MyBean(); }`

5. **@Component, @Service, @Repository, @Controller**

  • **用途**:用于声明Spring组件。这些注解是特殊类型的`@Component`,分别用于标注业务逻辑类、数据访问层类和控制器类。

6. **@Autowired**

  • **用途**:用于自动装配bean的依赖项。

  • **例子**:`@Autowired private MyDependency myDependency;`

7. **@Resource**

  • **用途**:类似于`@Autowired`,但允许使用JNDI查找。

8. **@Qualifier**

  • **用途**:当存在多个同类型的bean时,用于指定具体注入哪个bean。

  • **例子**:`@Autowired @Qualifier("myBeanName") private MyBean myBean;`

9. **@Value**

  • **用途**:用于注入属性值。

  • **例子**:`@Value("${my.property}") private String myProperty;`

10. **@Profile**

  • **用途**:用于指定某个bean或配置类在特定的Spring profile下激活。

  • **例子**:`@Profile("production")`

11. **@PropertySource**

  • **用途**:用于加载外部属性文件。

  • **例子**:`@PropertySource("classpath:my.properties")`

12. **@RestController, @RequestMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping**

  • **用途**:用于定义RESTful控制器和映射HTTP请求。

  • **@RestController**:是`@Controller`和`@ResponseBody`的组合。

  • **@RequestMapping**:用于定义URL映射。

  • **@GetMapping, @PostMapping, @PutMapping, @DeleteMapping**:分别用于定义HTTP GET、POST、PUT和DELETE请求的映射。

13. **@EnableAutoConfiguration**

  • **用途**:告诉Spring Boot根据添加的jar依赖自动配置应用。

14. **@EnableWebMvc**

  • **用途**:启用Spring MVC的配置支持。

15. **@EnableTransactionManagement**

  • **用途**:启用声明式事务管理。

16. **@Entity, @Table, @Column, @Id, @GeneratedValue**

  • **用途**:用于JPA实体类定义。

17. **@RepositoryRestResource**

  • **用途**:在Spring Data REST中,用于暴露JPA仓库作为RESTful资源。

18. **@Scheduled**

  • **用途**:用于声明一个定时任务。

19. **@EnableScheduling**

  • **用途**:启用Spring的计划任务支持。

20. **@Async**

  • **用途**:用于声明一个异步方法。

21. **@EnableAsync**

  • **用途**:启用Spring的异步方法执行支持。

22. **@ConditionalOnClass, @ConditionalOnMissingClass, @ConditionalOnProperty 等**

  • **用途**:用于条件化地创建bean,基于类存在性、属性设置等条件。

这些注解是Spring Boot中非常常见的,但还有很多其他的注解可以根据特定需求进行使用。了解这些注解以及它们之间的组合方式,是掌握Spring Boot应用开发的关键。

相关推荐
Grey Zeng1 小时前
Java SE 25新增特性
java·jdk·jdk新特性·jdk25
追逐时光者2 小时前
精选 4 款基于 .NET 开源、功能强大的 Windows 系统优化工具
后端·.net
雨白2 小时前
Java 线程通信基础:interrupt、wait 和 notifyAll 详解
android·java
TF男孩2 小时前
ARQ:一款低成本的消息队列,实现每秒万级吞吐
后端·python·消息队列
AAA修煤气灶刘哥4 小时前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
AAA修煤气灶刘哥4 小时前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
你的人类朋友4 小时前
什么是API签名?
前端·后端·安全
昵称为空C6 小时前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默7 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
RoyLin7 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js