SpringBoot

spring @Import四种实践

2019-05-18  本文已影响0人  不存在的里皮

1. 导入Configuration

Spring框架中的@Import注解向我们展示了@Import的两种用法:

  1. 通过在@Configuration类上使用@Import导入其它的@Configuration,来将多个配置导入到一个主配置中,避免将所有配置写在一个配置中。
     @Configuration
     @Import({JavaConfigA.class,JavaConfigB.class})
     public class ParentConfig {
         //Any other bean definitions
     }
    

此处,ParentConfig是主配置,JavaConfigA和JavaConfigB都是@Configuration类,各自用@Bean方法定义了自己的Bean。

2. 导入普通java类

在4.2以后,也可以导入普通的java类,并将其声明成一个bean

// 一个普通java类
public class DemoService {  
    public void doSomething(){  
        System.out.println("ok");  
    }  
}  
import org.springframework.context.annotation.Configuration;  
import org.springframework.context.annotation.Import;  
  
// Configuration将导入DemoService
@Configuration  
@Import(DemoService.class) //在spring 4.2之前是不不支持的  
public class DemoConfig {  
  
}  
import org.springframework.context.annotation.AnnotationConfigApplicationContext;  
  
public class Main {  
    public static void main(String[] args) {  
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com..example");  
        DemoService ds = context.getBean(DemoService.class);  
        ds.doSomething();  
    }  
  
}  

输出结果:ok

3. 导入ImportSelector的实现类

Spring中@Import注解的作用和使用

4. 导入ImportBeanDefinitionRegistrar的实现类

Spring中@Import注解的作用和使用

@Import用于@interface

阅读Spring - @Configuration selection by using ImportSelector中的Using Annotation based ImportSelector部分

上一篇 下一篇

猜你喜欢

热点阅读