Spring框架提供了众多注解,以下是Spring中常用的注解及其解释:
- `@Component`:用于标识一个类为Spring的组件,可以被自动扫描并注册为Bean。
- `@Repository`:用于标识一个类为数据访问层(DAO)组件。
- `@Service`:用于标识一个类为服务层(Service)组件。
- `@Controller`:用于标识一个类为控制器层(Controller)组件。
- `@RestController`:结合`@Controller`和`@ResponseBody`,用于标识一个类为RESTful 风格的控制器。
- `@Autowired`:用于自动注入依赖,可以用在构造函数、成员变量、方法、方法参数上。
- `@Qualifier`:与`@Autowired`配合使用,指定要注入的Bean的名称或限定符。解决多个相同类型的Bean的注入问题。
- `@Value`:用于注入配置文件中的值或表达式的结果。
- `@Configuration`:用于标识一个类为配置类,通常与`@Bean`一起使用。
- `@Bean`:用于声明一个由Spring容器管理的Bean。
- `@Scope`:用于指定Bean的作用域,例如单例(Singleton)、原型(Prototype)等。
- `@PostConstruct`:用于标识一个方法在Bean创建后立即执行。
- `@PreDestroy`:用于标识一个方法在Bean销毁之前执行。
- `@RequestMapping`:用于映射请求路径和处理方法。
- `@PathVariable`:用于获取请求路径中的参数值。
- `@RequestParam`:用于获取请求参数的值。
- `@ResponseBody`:用于指定方法的返回值作为响应体返回。
- `@ResponseStatus`:用于设置响应状态码和原因短语。
- `@ExceptionHandler`:用于处理特定异常类的方法。
- `@Transactional`:用于指定事务的属性,应用于方法或类级别。
- `@Primary`:用于指定在存在多个相同类型的Bean时,优先选择的Bean。
- `@Lazy`:用于延迟加载Bean,在需要使用时才进行初始化。
- `@Profile`:用于指定在特定环境下才注册或使用的Bean。
- `@ComponentScan`:用于指定要扫描的组件的基础包。
- `@EnableAutoConfiguration`:启用Spring Boot的自动配置机制。
- `@ConfigurationProperties`:用于将配置文件中的属性值绑定到Bean的属性上。
- `@Value`:用于注入配置文件中的值或表达式的结果。
- `@Conditional`:根据特定条件决定是否创建Bean,用于动态地配置Bean。
- `@PostConstruct`:用于标识一个方法在Bean创建后立即执行。
- `@PreDestroy`:用于标识一个方法在Bean销毁之前执行。
- `@RequestBody`:用于将请求体的内容绑定到方法的参数上。
- `@ResponseStatus`:用于设置响应状态码和原因短语。
- `@Async`:用于标识方法为异步方法,可以在方法内部使用多线程实现异步执行。