一、Spring boot常用注解介绍
1、SpringBootApplication注解
Spring Boot中的@SpringBootApplication注解是一个组合注解,用于标识一个主应用程序类。它包含了多个注解的功能,主要有以下几个作用:
1. @Configuration:该注解表明该类是一个配置类,相当于一个Spring配置文件。
2. @EnableAutoConfiguration:该注解启用自动配置机制,Spring Boot会根据项目中的依赖自动配置Spring应用上下文的参数。
3. @ComponentScan:该注解扫描指定包及其子包下的被@Component或其派生注解标注的类,并注册为Bean。
使用@SpringBootApplication注解可以简化配置,使得开发者可以更专注于业务逻辑的实现,而不用过多关注繁琐的配置细节。
2、Spring ComponentScan注解
在Spring框架中,@ComponentScan
注解用于指示Spring在哪些包中寻找组件类,并创建相应的Bean定义。这样,Spring容器就能够扫描指定的包,发现标记有@Component
及其衍生注解(如@Service
、@Repository
和@Controller
)的类,并将它们注册为Spring应用上下文中的bean。
@ComponentScan
注解通常与@Configuration
注解一起使用,后者用于标识一个类是Bean配置的源,类似于XML配置文件。在@Configuration
类中使用@ComponentScan
注解,可以指定要扫描的基础包或者特定的包含组件类的类。
例如:
@Configuration
@ComponentScan("com.example")
public class AppConfig {
// ...
}
在上面的例子中,@ComponentScan
指示Spring应该扫描com.example
包及其子包,寻找带有@Component
及其衍生注解的类,并将它们注册为bean。
除了指定要扫描的包之外,@ComponentScan
还支持其他属性,比如basePackageClasses
和basePackages
,允许开发者通过类或包名的方式来指定要扫描的范围。
总之,@ComponentScan
注解使得在Spring应用程序中使用基于组件的开发变得更加便捷,同时也提高了代码的可维护性和可读性。
3、SpringBootConfiguration注解
在Spring Boot中,@SpringBootConfiguration
注解用于标记一个类为配置类。这意味着该类是一个用于配置应用程序上下文的类,它通常包含了bean定义和相关的配置信息。
实际上,@SpringBootConfiguration
是@Configuration
注解的派生注解,它为Spring Boot提供了更多的特性和功能。与传统的@Configuration
注解相比,@SpringBootConfiguration
注解引入了更多Spring Boot特有的自动配置和启动功能,使得配置类更加简洁和易用。
使用@SpringBootConfiguration
注解标记的类可以通过@ComponentScan
或@Import
来加载其他配置类或组件,也可以使用@Bean
来声明Bean定义。此外,它还可以与@PropertySource
一起使用,从外部属性文件加载配置信息。
总之,@SpringBootConfiguration
注解用于标记一个类为Spring Boot应用程序的配置类,它提供了丰富的功能来简化配置文件的编写和应用程序上下文的管理。
4、EnableAutoConfiguration注解
@EnableAutoConfiguration注解是Spring Boot框架中的一个重要注解,它用于启用自动配置特性。在Spring Boot中,通过@EnableAutoConfiguration注解,可以实现对应用程序的自动化配置,减少了开发人员在配置上的工作量。
具体来说,@EnableAutoConfiguration注解的作用包括以下几个方面:
-
自动配置:Spring Boot提供了大量的Starter依赖,这些依赖中包含了各种常用的库和框架的自动配置。通过@EnableAutoConfiguration注解,Spring Boot会根据classpath中的jar包和项目中的配置,自动地对应用程序进行配置,从而简化了配置过程。
-
条件化配置:@EnableAutoConfiguration注解基于条件化配置(Conditional Configuration),根据项目中的实际情况和环境,决定是否启用特定的自动配置。这样可以根据需要灵活地开启或关闭特定的自动配置项,提高了配置的灵活性和可定制性。
-
组件扫描:@EnableAutoConfiguration注解还会触发Spring Boot自动扫描和注册组件的功能,使得应用程序中的各种组件(如@Service、@Repository、@Component等)能够被自动扫描并注册到Spring容器中,简化了组件的配置和管理。
总的来说,@EnableAutoConfiguration注解是Spring Boot框架中非常重要的一个注解,它通过自动配置和条件化配置,大大简化了Spring应用程序的配置工作,提高了开发效率和灵活性。
二、springboot注解大全
1、Spring Boot是一个用于快速构建基于Spring框架的应用程序的工具,它提供了大量的注解来简化开发
以下是一些常用的Spring Boot注解:
1. @SpringBootApplication:用于标注主程序类,表示这是一个Spring Boot应用程序的入口点。
2. @RestController:用于标注控制器类,表示该类处理HTTP请求并返回JSON或XML响应。
3. @RequestMapping:用于映射HTTP请求到控制器方法,可以指定请求的URL和HTTP方法。
4. @Autowired:用于自动装配bean,可以在字段、构造函数、Setter方法上使用。
5. @Service:用于标注服务类,表示该类是业务逻辑的组件。
6. @Repository:用于标注数据访问类,表示该类是数据访问层的组件。
7. @Configuration:用于标注配置类,表示该类包含Spring应用程序上下文的bean定义。
8. `@ComponentScan`:用于指定Spring在哪些包下寻找组件类。
9. @Value:用于注入属性值,可以从配置文件中读取属性值。
10. @EnableAutoConfiguration:用于启用Spring Boot的自动配置机制,根据classpath的jar依赖为当前项目进行自动配置。
11. @PathVariable:用于将URL模板中的变量绑定到方法参数上。
12. @RequestBody:用于将HTTP请求体绑定到方法参数上,通常用于接受POST请求的JSON数据。
13. @CrossOrigin:用于启用跨域资源共享(CORS),可以在控制器类或方法上使用,以允许跨域请求。
14. @Scheduled:用于指定定时任务的执行规则,可以用于方法上,表示该方法是一个定时任务。
15. @Transactional:用于标注事务管理相关的方法,表示该方法应该被包装在一个数据库事务中。
16. @EnableWebMvc:用于自定义配置Spring MVC,通常与@Configuration一起使用。
17. @EnableJpaRepositories:用于启用Spring Data JPA仓库的自动化配置。
18. @Entity:用于标注实体类,表示该类是一个JPA实体。
19. @ConfigurationProperties:用于绑定和验证配置属性的类。
20. @Slf4`:Lombok提供的注解,用于引入Slf4j日志记录器。
21. @Cacheable:用于标注方法的返回结果可以被缓存,以提高方法执行的性能。
22. @CacheEvict:用于标注方法会触发清除缓存的操作。
23. @ConditionalOnProperty:基于应用程序的配置属性来决定是否应该创建一个bean或配置一个类。
24. @EnableScheduling:启用计划任务支持,类似于@Scheduled,但可以在配置类上使用。
25. @EnableAsync:启用异步方法执行支持,可以在配置类上使用。
26. @Validated:用于对方法参数进行验证,通常与JSR-303/JSR-349 Bean Validation一起使用。
27. @Async:标注方法为异步执行,可以在方法上使用。
28. @EnableTransactionManagement:启用注解驱动的事务管理,通常在配置类上使用。
29. `@EnableCaching:启用Spring的缓存支持,通常在配置类上使用。
30. @TransactionalEventListener:标注一个方法作为事务事件监听器。
2、除了简单地指定要扫描的包以外,@ComponentScan注解还可以与其他注解结合使用,以实现更精细的控制和定制。
1. 自定义过滤器:通过@ComponentScan注解的includeFilters和excludeFilters属性,可以自定义过滤器来控制哪些类应该被包含或排除。这样可以更加灵活地控制组件扫描的行为,例如只扫描特定类型的类或者排除特定名称的类。
2. 指定配置类:通过@ComponentScan注解的value属性,可以指定一个或多个用于扫描的基础包。这样可以将不同功能或层次的组件类分别放置在不同的包中,从而更好地组织代码结构。
3. 使用basePackageClasses属性:这个属性允许开发者通过指定类的方式来定义要扫描的基础包,通常用于指定特定的类所在的包。这样做的好处是,如果某个类被移动到了其他包,不会影响到`@ComponentScan`的配置。
总的来说,@ComponentScan注解作为Spring框架中非常重要的一部分,为开发者提供了在应用中轻松使用基于组件的开发的便利性和灵活性。通过合理的配置,可以让Spring框架自动地发现和注册应用中的组件,避免了繁琐的手动配置,提高了开发效率。
这些注解在实际的Spring Boot应用程序开发中发挥着重要作用,它们涵盖了从缓存、定时任务到异步执行和事务管理等多个方面。合理使用这些注解可以让开发工作更加高效和便捷。