Spring 和 Spring Boot 是 Java 开发中广泛使用的框架,它们提供了许多注解来简化配置和开发过程。以下是一些 Spring 和 Spring Boot 中常用的注解:
Spring 常用注解
@Component
用于标注一个类为 Spring 容器的一个组件,Spring 会自动为这个类创建 Bean 实例。
@Repository
专门用于标注数据访问层(DAO)的组件,表示该类是用于数据库访问的。
@Service
用于标注服务层的组件,通常包含业务逻辑。
@Controller
用于标注控制层组件,如 Spring MVC 中的控制器。
@Autowired
自动注入依赖的 Bean,可以标注在字段、方法或构造器上。
@Qualifier
与 @Autowired 一起使用,用于指定要注入的 Bean 的名称或类型。
@Configuration
表示该类是一个配置类,Spring 会基于这个类生成 IoC 容器,并且可以将 @Bean 注解的方法返回的实例注入到其他组件中。
@Bean
用于标注在 @Configuration 类中的方法上,表示该方法会返回一个 Bean 实例,该实例会被注册到 Spring 容器中。
@Scope
用于指定 Bean 的作用域,如 singleton、prototype、request、session 等。
@Value
用于注入配置文件中的值到字段或方法参数中。
Spring Boot 常用注解
@SpringBootApplication
是一个组合注解,包含了 @SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan,用于标注主配置类,开启自动配置和组件扫描。
@SpringBootConfiguration
表示这是一个 Spring Boot 的配置类,等同于传统的 Spring 配置类上的 @Configuration 注解。
@EnableAutoConfiguration
告诉 Spring Boot 基于添加的 jar 依赖猜测你可能需要的配置,并自动进行配置。
@SpringBootTest
用于编写 Spring Boot 应用的集成测试,可以启动整个 Spring 容器。
@TestConfiguration
用于测试时的专用配置,与 @Configuration 类似,但仅用于测试环境。
@MockBean
在测试时用于替换 Spring 容器中的真实 Bean,以便进行隔离测试。
@Profile
用于指定某些 Bean 只在特定的环境下才激活,如开发环境、测试环境或生产环境。
@Conditional
根据特定的条件来决定是否创建某个 Bean,通常与自定义的条件类一起使用。
这些注解大大简化了 Spring 和 Spring Boot 应用的配置和开发过程,使得开发者可以更加专注于业务逻辑的实现,而不是框架的配置。在实际开发中,会根据需要选择和使用这些注解。