1、@Import class
package com.vim.common.config;
import com.vim.modules.test.Test1;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(Test1.class)
public class BeanConfig {
}
2、@Import selector
package com.vim.common.config;
import com.vim.modules.test.Test1;
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;
public class BeanImportSelector implements ImportSelector{
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[]{Test1.class.getName()};
}
}
package com.vim.common.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import({BeanImportSelector.class})
public class BeanConfig {
}
3、@Import define
package com.vim.common.config;
import com.vim.modules.test.Test1;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;
public class CustomBeanDefinitionRegistry implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
if(!registry.containsBeanDefinition("test1")){
registry.registerBeanDefinition("test", new RootBeanDefinition(Test1.class));
}
}
}
package com.vim.common.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import({CustomBeanDefinitionRegistry.class})
public class BeanConfig {
}