使用Spring Annotation有条件地导入类

时间:2014-04-21 07:53:06

标签: java spring spring-annotations

我必须在Spring的Configuration类中有条件地导入类。因此,有3个带有{​​{1}}注释的配置类:

@Configuration

是否可以通过@Configuration public SubClass1 { ... } @Configuration public SubClass2 { ... } @Configuration // something like this: @Import(if (flag) 'SubClass1.class' else 'SubClass2.class') public MainClass1 { ... } 注释有条件地导入类?或者我必须导入所有类吗?

1 个答案:

答案 0 :(得分:0)

根据javadocvalue注释的@Import元素必须是Class个对象的数组。

value

public abstract Class<?>[] value

The @Configuration, ImportSelector 
and/or ImportBeanDefinitionRegistrar classes to import.

因此,您无法使用@Import注释创建SpEL语句来有条件地导入资源。

最接近有条件的资源导入是使用Profiles