美文网首页3Java后端
@Component VS @Bean

@Component VS @Bean

作者: happyJared | 来源:发表于2019-09-24 08:51 被阅读0次
    1. 作用对象不同: @Component 注解作用于类,而 @Bean 注解作用于方法;
    2. @Component 通常是通过类路径扫描来自动侦测,以及自动装配到 Spring 容器中(可以使用 @ComponentScan注解定义要扫描的路径,从中找出标识了需要装配的类,并自动装配到 Spring 的 bean 容器中)。@Bean 注解通常是在标有该注解的方法中定义产生这个 bean,@Bean告诉了 Spring 这是某个类的示例,当需要用到它的时候还给我;
    3. @Bean 注解比 Component 注解的自定义性更强,而且很多地方我们只能通过 @Bean 注解来注册 bean。比如当我们引用第三方库中的类需要装配到 Spring容器时,则只能通过 @Bean来实现。

    @Bean 注解使用示例:

    @Configuration
    public class AppConfig {
    
        @Bean
        public TransferService transferService() {
            return new TransferServiceImpl();
        }
    
    }
    

    上面的代码相当于下面的 xml 配置

    <beans>
        <bean id="transferService" class="com.xxx.TransferServiceImpl"/>
    </beans>
    

    下面这个例子是通过 @Component 无法实现的。

    @Bean
    public OneService getService(status) {
        case (status)  {
            when 1:
                    return new serviceImpl1();
            when 2:
                    return new serviceImpl2();
            when 3:
                    return new serviceImpl3();
        }
    }
    

    相关文章

      网友评论

        本文标题:@Component VS @Bean

        本文链接:https://www.haomeiwen.com/subject/zpamuctx.html