内容有参考,但当时没有写博客的意识,也找不到出处了,仅作为学习笔记免费分享
JavaBean、Spring Bean、对象三者区别
对象是面向对象编程中的一个概念,而JavaBean正是对这一概念的具体实现,也是一种规范。Spring Bean是Spring容器中的概念,简单理解为是被Spring容器所管理的对象。
@Component和@Bean注解的区别
- 用途不同:@Component表示在类上面,表明该类被Spring容器管理;@Bean使用在配置类中,在方法上声明该方法返回的对象由Spring容器管理。
- 使用方式不同:@Component是类级别注解,Spring通过@ComponentScan去扫描并注册到IOC容器中;@Bean是方法级注解,在配置类中手动声明和配置Bean。
- 控制权不同:@Component注解由Spring容器自动创建并初始化;@Bean允许开发人员手动控制创建和配置过程。
以下是两者是使用场景,区别还是很明显的:
@Component
public class MyBean{}
@Configuration
public class MyConfiguration{
@Bean
public MyBean buildMyBeanService(){
// 初始化
MyBean bean = new MyBean();
// 配置逻辑...
return bean;
}
}