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应用开发的关键。

相关推荐
hgz0710几秒前
Spring Boot Starter机制
java·spring boot·后端
daxiang120922052 分钟前
Spring boot服务启动报错 java.lang.StackOverflowError 原因分析
java·spring boot·后端
我家领养了个白胖胖2 分钟前
极简集成大模型!Spring AI Alibaba ChatClient 快速上手指南
java·后端·ai编程
jiayong233 分钟前
Markdown编辑完全指南
java·编辑器
他是龙5517 分钟前
第40天:JavaEE安全开发SpringBoot JWT身份鉴权与打包部署(JAR&WAR)
spring boot·安全·java-ee
heartbeat..21 分钟前
深入理解 Redisson:分布式锁原理、特性与生产级应用(Java 版)
java·分布式·线程·redisson·
一代明君Kevin学长23 分钟前
快速自定义一个带进度监控的文件资源类
java·前端·后端·python·文件上传·文件服务·文件流
aiopencode24 分钟前
上架 iOS 应用到底在做什么?从准备工作到上架的流程
后端
未来之窗软件服务26 分钟前
幽冥大陆(四十九)PHP打造Java的Jar实践——东方仙盟筑基期
java·php·jar·仙盟创梦ide·东方仙盟·东方仙盟sdk·东方仙盟一体化
普通网友31 分钟前
深入探讨Linux驱动开发:字符设备驱动开发与测试_linux 驱动开发设备号(2)
java·linux·驱动开发