Spring Boot中的常用注解
一、核心注解
-
@SpringBootApplication
-
作用:标注一个主程序类,表明这是一个Spring Boot应用程序的入口。
-
功能:这是一个复合注解,组合了@Configuration、@EnableAutoConfiguration和@ComponentScan。
-
-
@EnableAutoConfiguration
-
作用:启用Spring Boot的自动配置机制,根据项目中的依赖和应用上下文自动配置Spring应用程序。
-
细节:它会尝试根据添加的依赖和项目中的配置自动配置Spring Bean。例如,如果项目中有HSQLDB的依赖,Spring Boot会自动配置一个内存数据库。
-
-
@ComponentScan
-
作用:自动扫描指定包及其子包中的Spring组件。
-
细节:默认情况下,@ComponentScan会扫描主应用类所在的包及其子包。
-
-
@Configuration
-
作用:标识一个类作为配置类,相当于一个Spring XML配置文件。
-
细节:配置类可以包含一个或多个@Bean注解的方法,这些方法会返回要注册到Spring应用上下文中的Bean。
-
二、组件注解
-
@Component
-
作用:将一个类标识为Spring组件(Bean),可以被Spring容器自动检测和注册。
-
细节:@Component是一个通用的注解,可以用来标注任何Spring管理的Bean。
-
-
@Service
-
作用:标识服务层组件,实际上是@Component的一个特化,用于表示业务逻辑服务。
-
细节:用于标识服务层的类,这些类通常包含业务逻辑。
-
-
@Repository
-
作用:标识持久层组件,实际上是@Component的一个特化,用于表示数据访问组件。
-
细节:数据访问组件通常是指在软件系统中负责数据访问和持久化的部分或模块。
-
-
@Controller
-
作用:标识控制层组件,实际上是@Component的一个特化,用于表示Web控制器。
-
细节:用于标识Spring MVC控制器,处理Web请求并返回视图。
-
-
@RestController
-
作用:标识一个RESTful Web服务的控制器,实际上是@Controller和@ResponseBody的结合。
-
细节:返回的对象会自动序列化为JSON或XML,并写入HTTP响应体中。
-
三、请求映射注解
-
@RequestMapping
-
作用:映射HTTP请求到处理方法上(GET、POST、PUT、DELETE等)。
-
细节:可以用于类或方法上,支持各种HTTP请求方法。
-
-
@GetMapping
-
作用:映射HTTP GET请求到处理方法上。
-
细节:是@RequestMapping的简化版,专门用于GET请求。
-
-
@PostMapping
-
作用:映射HTTP POST请求到处理方法上。
-
细节:是@RequestMapping的简化版,专门用于POST请求。
-
四、参数处理注解
-
@RequestParam
-
作用:用于接收URL中的查询参数。
-
细节:可以指定参数名、是否必填以及默认值。
-
-
@PathVariable
-
作用:用于接收URI路径中的参数值。
-
细节:常用于RESTful服务中,允许动态地将URL中的部分作为方法参数使用。
-
-
@RequestBody
-
作用:将HTTP请求体的内容(如JSON、XML等)映射到一个Java对象。
-
细节:通常用于POST请求中,将客户端发送的数据绑定到方法的参数上。
-
-
@ResponseBody
-
作用:将方法的返回值转换为指定格式(如JSON、XML)作为HTTP响应的内容返回给客户端。
-
细节:常用于RESTful服务中,标识方法返回的对象不是视图名称,而是直接写入HTTP响应体中的数据。
-
五、其他常用注解
-
@Autowired
-
作用:基于注解方式进行自动装配,在容器里面将查找到的Bean返回。
-
细节:可以配合@Qualifier使用来指定具体的Bean。
-
-
@Qualifier
-
作用:与@Autowired配合使用,用于指定具体的Bean。
-
细节:当存在多个相同类型的Bean时,需要使用@Qualifier来指定要注入的Bean。
-
-
@Value
-
作用:用于获取配置文件中的值。
-
细节:通常与application.properties或application.yml配置文件配合使用。
-
-
@ConfigurationProperties
-
作用:将配置信息封装为实体类。
-
细节:可以用于将配置文件中的多个属性一次性注入到一个实体类中。
-
-
@PropertySource
-
作用:将配置文件中的内容存储到环境中。
-
细节:通常与@Value或@ConfigurationProperties配合使用,但注意@PropertySource不支持yml文件读取。
-