Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
2 个回答
自己喜欢的东西,就不要问别人好不好。粑粑Spring Boot 的核心注解主要分为**启动类注解**、**配置类注解**、**组件声明与依赖注入注解**、**条件装配注解**、**属性绑定注解**等几类,常见如下: ### 1. 启动与核心注解 * **`@SpringBootApplication`** * 核心启动注解,等价于: ```java @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan ``` * 表示该类是 Spring Boot 应用的入口类,并启用自动配置与组件扫描。 * **`@EnableAutoConfiguration`** * 开启 Spring Boot 的自动配置功能,根据依赖的 jar 包自动加载配置。 * **`@SpringBootConfiguration`** * 本质是 `@Configuration`,表示这是一个配置类。 ### 2. 配置类相关 * **`@Configuration`** * 声明一个配置类,可以注册 Bean。 * **`@Bean`** * 用于定义方法返回的对象交给 Spring 容器管理。 * **`@Import`** * 导入其他配置类或 Bean 定义。 * **`@ImportResource`** * 导入 XML 配置文件。 ### 3. 组件声明与依赖注入 * **`@Component`** * 声明一个普通组件交由 Spring 容器管理。 * **`@Service`** * 声明业务逻辑层组件。 * **`@Repository`** * 声明数据访问层组件,支持持久化异常转换。 * **`@Controller`** / **`@RestController`** * 控制层组件,`@RestController` = `@Controller + @ResponseBody`。 * **`@Autowired`** * 按类型自动注入 Bean。 * **`@Qualifier`** * 按名称指定注入的 Bean。 * **`@Resource`**(JDK 注解) * 按名称或类型注入。 ### 4. 条件装配(Conditional 系列) * **`@ConditionalOnClass`** * 当指定类存在于类路径中时才加载 Bean。 * **`@ConditionalOnMissingClass`** * 当指定类不存在时加载 Bean。 * **`@ConditionalOnBean`** / **`@ConditionalOnMissingBean`** * 当容器中存在/不存在某个 Bean 时加载。 * **`@ConditionalOnProperty`** * 当配置文件中存在指定属性时才加载。 ### 5. 属性绑定 * **`@Value`** * 从配置文件中注入属性值。 * **`@ConfigurationProperties`** * 将配置文件的属性批量绑定到对象上。 * **`@EnableConfigurationProperties`** * 启用 `@ConfigurationProperties` 绑定的 Bean。 ### 6. 其他常用 * **`@EnableScheduling`** * 开启定时任务。 * **`@EnableAsync`** * 开启异步方法执行。 * **`@EnableCaching`** * 开启缓存支持。 * **`@EnableTransactionManagement`** * 开启事务管理。发布于 2024-08-15 05:38 •IP属地 河北举报评论收藏
人一旦不害怕失去,态度就会变得随意,随你意,你随意。魔女### Spring Boot 的核心注解 Spring Boot 的核心注解是 `@SpringBootApplication`,它通常用于标注启动类。这个注解本质上是一个组合注解,集成了多个常用注解,以简化配置。`@SpringBootApplication` 主要由以下三个注解组成: #### 1. `@SpringBootConfiguration` - **描述**:组合了 `@Configuration` 注解,实现配置文件的功能。 - **作用**:表明这是一个 Spring 配置类,可以用来定义 Spring beans。 #### 2. `@EnableAutoConfiguration` - **描述**:开启 Spring Boot 的自动配置功能。 - **作用**:根据项目的依赖,自动配置 Spring 应用上下文,减少手动配置的工作量。 - **示例**:可以通过 `exclude` 属性关闭某些自动配置,例如关闭数据源自动配置: ```java @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) ``` #### 3. `@ComponentScan` - **描述**:开启组件扫描。 - **作用**:让 Spring 自动扫描指定包及其子包中的组件(例如 @Controller、@Service、@Repository 等),并注册为 Spring Bean。 - **示例**:可以通过 `basePackages` 属性指定扫描的包: ```java @SpringBootApplication(scanBasePackages = "com.example.myapp") ``` ### 示例代码 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` ### 总结 `@SpringBootApplication` 是 Spring Boot 的核心注解,主要由以下三个注解组成: 1. **`@SpringBootConfiguration`** - 组合了 `@Configuration` 注解,实现配置文件的功能。 2. **`@EnableAutoConfiguration`** - 开启自动配置功能,可以根据需要通过 `exclude` 属性关闭某些自动配置。 3. **`@ComponentScan`** - 开启组件扫描,让 Spring 自动扫描指定包及其子包中的组件并注册为 Spring Bean。 通过 `@SpringBootApplication` 注解,Spring Boot 简化了配置,使开发者能够快速构建和运行 Spring 应用。发布于 2024-07-26 15:15 •IP属地 贵州举报评论收藏
公众号进入网站体验更佳

