# Spring Boot三大注解
Spring Boot是一套快速开发框架,它提供了许多常用的注解,使得开发人员可以更加方便快捷地进行开发,最常用的三大注解是`@SpringBootApplication`、`@ComponentScan`和`@Component`。
## @SpringBootApplication
`@SpringBootApplication`注解是Spring Boot中最核心的注解之一,它是由`@SpringBootConfiguration`、`@EnableAutoConfiguration`和`@ComponentScan`三个注解组合而成的,这个注解的作用是告诉Spring Boot,这是一个基于Spring Boot的配置类,并且启用了自动配置和组件扫描功能。
在Spring Boot中,通常会将主类命名为`Application`,并使用`@SpringBootApplication`注解,这样可以让其他组件方便地扫描到这个主类,并自动装配到Spring容器中。
## @ComponentScan
`@ComponentScan`注解的作用是告诉Spring Boot在哪些包下进行组件扫描,默认情况下,Spring Boot会扫描主类所在的包以及其子包下的所有类,如果需要扫描其他包下的组件,可以通过在主类上添加`@ComponentScan`注解,并指定需要扫描的包名来实现。
下面的代码示例中,`@ComponentScan(basePackages = "com.example.demo")`会扫描`com.example.demo`包及其子包下的所有类。
@SpringBootApplication @ComponentScan(basePackages = "com.example.demo") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
## @Component
`@Component`注解是Spring中最常用的注解之一,它表示将一个普通的Java类声明为Spring组件,在Spring Boot中,使用`@Component`注解的类会被自动扫描并注册到Spring容器中。
下面的代码示例中,使用`@Component`注解将一个普通的Java类声明为Spring组件,并命名为`UserService`,这个类中的所有public方法都会被自动装配到Spring容器中,可以通过注入的方式来使用。
@Component public class UserService { public String getUserInfo(String username) { // ... } }
需要注意的是,如果在一个类上同时使用了多个注解,比如同时使用了`@Component`和`@Service`注解,那么这个类会被注册到多个Spring容器中,为了避免这种情况,建议在一个类上只使用一个注解。