Component

@component是spring中的一个注解,它的作用就是实现bean的注入,被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理。注解本质上就是一个类,开发中我们可以使用注解 取代 xml配置文件。

web开发,提供3个@Component注解衍生注解

1、@Controller 控制器(注入服务,web层)
用于标注控制层,相当于struts中的action层

2、@Service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理

3、@Repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.

4、@Component
(把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/> )

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

@Component和@Bean的区别?

@Component和@Bean做两件完全不同的事情,不应该混淆。  

@Component(以及@Service和@Repository)用于使用类路径扫描自动检测和自动配置bean。 在带注释的类和bean之间有一个隐式的一对一映射(即每个类一个bean)。如果我们用@Component或者其他构造型注释标记一个类,这些类将会被使用类路径扫描自动检测出来。 只要这些类位于基本包之下,或者Spring知道要扫描的另一个包,就会为每个类创建一个新的bean。  

@Bean用于显式声明单个bean,而不是像上面那样让Spring自动执行。 它将bean的声明与类定义解耦,并允许您按照自己选择的方式创建和配置bean。  

Componet 一般放在类上面,Bean放在方法上面,自己可控制是否生成bean

bean 一般会放在classpath scanning路径下面,会自动生成bean

有Componet /bean生成的bean都提供给autowire使用

@Bean一般要和@Configuration连用

@Configuration
public class Config {
    @Bean
    public Pig pig(){
        return new Pig();
    }
 

@Component和@Bean都是用来注册Bean并装配到Spring容器中,但是Bean比Component的自定义性更强。可以实现一些Component实现不了的自定义加载类。比如当我们引用第三方库中的类需要装配到 Spring 容器时,只能通过 @Bean 来实现。

相同点:都是用来注册Bean并装配到Spring容器中

不同点:@Component  作用于类上,告知Spring,为这个类创建Bean。通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。(@Controller、@Service、@Repository )

    @Bean 主要作用于方法上,告知Spring,这个方法会返回一个对象,且要注册在Spring的上下文中。通常方法体中包含产生Bean的逻辑。 相当于 xml文件的中<bean>标签。

@Autowired:自动根据类型注入
@Qualifier(“名称”):指定自动注入的id名称

@Resource(“名称”)
@ PostConstruct 自定义初始化
@ PreDestroy 自定义销毁

原文链接:Spring中@component的使用_不怕万人阻挡,只怕自己投降-CSDN博客_@component

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值