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

embedded/2024/9/24 21:24:08/

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


http://www.ppmy.cn/embedded/12703.html

相关文章

wx小程序-button的bindtap事件

一、button标签 由于小程序语法中,处理函数不能带参数,所以不能实现直接调用要修改的数据。所以除了用bindtap(提示:bindtap和bind:tap两种语法都是正确的)绑定处理函数,还需要在button属性中添加一个data…

【漏洞复现】手机卡号推广商城 login.php接口处存在 SQL 注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

ClickHouse 高可用之副本

文章目录 ClickHouse 副本支持副本的引擎配置高可用副本副本应用1.副本表概述2.创建副本表3.写入模拟数据4.副本验证 扩展 —— 在 Zookeeper 中查看副本表信息 ClickHouse 副本 ClickHouse 通过副本机制,可以将数据拷贝存储在不同的节点上。这样,如果一…

<前端>Electron-builder为公证后的app打更新信息latest.yml

MacOS下,Electron-builder可以很方便的为测试包app打更新信息(latest-mac.yml)。 但是,正式发布的时候,不可能用测试包app,因为还没有进行公证。如何为公证的app打latest-mac.yml呢。 其实观察latest-mac.y…

配置nodejs的俩小脚本

介绍:共两个脚本。 脚本1,用来配置环境变量,生成环境变量所需的配置信息,然后自己添加到系统环境变量里去 特别注意:该脚本需要放到nodejs目录下面,如果不是,则无法生成环境变量配置文本内容 另…

前端-移动端基于vant4开发

一、吸顶 头部的吸顶效果,可以使用vant4的粘性布局。 Sticky 粘性布局 - Vant 4 (gitee.io) 二、底部菜单栏样式 三、弹出层 可以使用vant4弹出层组件 Popup 弹出层 - Vant 4 (gitee.io) 四、横向标签页滚动 可以基于vant4的标签页进行开发。Tab 标签页 - Vant …

UDP文件传输工具之UDP传输的优点和缺点

在当今快节奏的网络通信时代,UDP以其独特的优势,在众多应用场景中扮演着关键角色。本文将深入探讨UDP的优缺点及其应用场景,并重点介绍镭速软件如何通过技术创新,显著提升UDP传输的效率和可靠性。 UDP传输的优点 UDP的显著优势在…

分类与预测算法评价的介绍

分类与预测算法的评价是在机器学习中至关重要的一步,它帮助我们了解模型在解决特定问题上的表现如何,并且可以帮助我们选择最适合我们需求的算法。下面是分类与预测算法评价的一般介绍: 分类与预测问题 分类问题:是指将数据分为预…