spring注解与xml配置方式的对应关系

一、表达形式层面

  1. 基于xml的配置方式是这样的配置代码如下:

      
    <!- bean定义 ->
    beans>
    
  2. 而基于javaconfig的配置方式是这样的代码如下:

    @configuration
    public class MockConfiguration{
      //bean定义
    }
    

    任何一个标注了@configuration的java类定义都是一个javaconfig的配置类

二、注册bean定义层面

  1. 基于xml的配置方式是这样的:

    <bean id="mockService" class="...MockServiceImpl">
      ...
    bean>
    
  2. 基于javaconfig的配置方式是这样的

    @configuration
    public class MockConfiguration{
      @Bean
      public MockService mockService(){
        return new MockServiceImpl():
      }
    }
    

    任何一个标注了@Bean的方法,其返回值将作为一个bean定义注册到Spring的IoC容器,方法 名将默认成为该bean定义的id。

三、批量定义注册bean

  1. 基于xml的配置方式是这样的

    <context:component-scan base-package="..."/>
    

    配合@Component和@Repository等,将标注了这些元信息annotation的bean定义类批量采集到spring的IoC容器中。

  2. 基于javaconfig的配置方式是这样的

    @ComponentScan(String[] basePackages)
    注:@ComponentScan是springboot框架一个关键组件

四、表达依赖注入关系层面

  1. 基于xml的配置方式是这样的

    <bean id="mockService" class="...MockServiceImpl">
      <property name="dependencyService" ref="dependencyService">
    bean>
    <bean id="dependencyService" class="...dependencyServiceImpl"/>
    
  2. 基于javaconfig的配置方式是这样的

    @configuration
    public class MockConfiguration{
      @Bean
      public MockService mockService(){
        return new MockServiceImpl(dependencyService()):
      }
      @Bean
      public DependencyService dependencyService(){
        return new DependencyServiceImpl():
      }
    }
    

你可能感兴趣的:(Java)