一文掌握Spring 中 @Component 和 @Bean 区别(最新推荐)
Spring 中 @Component 和 @Bean 区别
1. 用途不同
@Component 用于标识一个普通的类,@Bean用于配置类里面,在方法上面声明和配置 Bean 对象
Tips:
@Component会告诉Spring,由@Component所修饰的类会被作为组件类,同时Spring要为这个类创建Bean- 告知
spring这个方法会返回一个对象,这个对象需要注册为Spring上下文(ApplicationContext)中的bean,通常方法体包含了最终产生bean实例的逻辑
2.使用方式不同
@Component 是类级别的注解,Spring 可以扫描到配置此注解的这些类并把他们注入到 SpringIOC 容器中,@Bean 是修饰在方法上的,表示此方法返回一个 Bean 对象注入到 SpringIOC 容器中。
Tips:但是都能够在Spring中注册Bean对象
@Component 使用示例
@Component
public class OrderService {
}但是在spring中通常@Component注解通常要配合@ComponentScan实现注册的功能
@ComponentScan("指定@Component注解所在的包路径")
public class AppConfig {
}@Bean 使用示例
@Configuration
public class AppConfig {
@Bean
public OrderService orderService1(){
return new OrderService();
}
}@Bean需要在配置类中使用,即类上需要加上@Configuration注解,然后在配置类中使用一个方法定义bean是如何创建的
3. 控制权不同
@Component 修饰的类是由Spring框架 统一管理和创建的,而 @Bean 允许开发人员手动控制 Bean的创建和配置
4. 灵活性不同
@Bean注解比@Component注解灵活,我们可以按需注册需要的bean,很多场景我们只能通过@Bean来注册bean,比如引入第三方库中的类需要装配到spring容器中。
参考文献
Spring中@Component注解和@Bean的区别是什么
Spring中@Component和@Bean的区别_spring bean和component
到此这篇关于Spring 中 @Component 和 @Bean 区别的文章就介绍到这了,更多相关Spring @Component 和 @Bean 区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
利用JSONObject.toJSONString()包含或排除指定的属性
这篇文章主要介绍了利用JSONObject.toJSONString()包含或排除指定的属性,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03
解决启用 Spring-Cloud-OpenFeign 配置可刷新项目无法启动的问题
这篇文章主要介绍了解决启用 Spring-Cloud-OpenFeign 配置可刷新项目无法启动的问题,本文重点给大家介绍Spring-Cloud-OpenFeign的原理及问题解决方法,需要的朋友可以参考下2021-10-10
Java中的CountDownLatch、CyclicBarrier和semaphore实现原理解读
这篇文章主要介绍了Java中的CountDownLatch、CyclicBarrier和semaphore实现原理详解,CountDownLatch中调用await方法线程需要等待所有调用countDown方法的线程执行,这就很适合一个业务需要一些准备条件,等准备条件准备好之后再继续执行,需要的朋友可以参考下2023-12-12


最新评论