宣告 Bean

要声明 bean,只需使用 @Bean 注释注释方法或使用 @Component 注释注释类(注释 @Service@Repository@Controller 也可以使用)。

当 JavaConfig 遇到这样的方法时,它将执行该方法并将返回值注册为 BeanFactory 中的 bean。默认情况下,bean 名称将是方法名称的名称。

我们可以使用以下三种方法之一创建 bean:

  1. 使用基于 Java 的配置 :在配置文件中,我们需要使用 @bean 注释声明 bean

    @Configuration
    public class AppConfig {
        @Bean
        public TransferService transferService() {
            return new TransferServiceImpl();
        }
    }
    
  2. 使用基于 XML 的配置 :对于基于 XML 的配置,我们需要在应用程序配置 XML 中创建 declare bean,即

     <beans>
         <bean name="transferService" class="com.acme.TransferServiceImpl"/>
     </beans>
    
  3. 注释驱动的组件 :对于注释驱动的组件,我们需要将 @Component 注释添加到我们要声明为 bean 的类中。

     @Component("transferService")
     public class TransferServiceImpl implements TransferService {
         ...
     }
    

现在所有三个名为 transferService 的豆都可以在 BeanFactoryApplicationContext 中找到。