|
@@ -3,12 +3,16 @@ package com.sf.config;
|
|
import com.sf.bean.Computer;
|
|
import com.sf.bean.Computer;
|
|
import com.sf.config.other.OtherAutoConfig1;
|
|
import com.sf.config.other.OtherAutoConfig1;
|
|
import com.sf.config.other.OtherAutoConfig2;
|
|
import com.sf.config.other.OtherAutoConfig2;
|
|
|
|
+import org.springframework.boot.autoconfigure.AutoConfiguration;
|
|
|
|
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|
|
|
+import org.springframework.boot.context.annotation.ImportCandidates;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Import;
|
|
import org.springframework.context.annotation.Import;
|
|
import org.springframework.context.annotation.ImportSelector;
|
|
import org.springframework.context.annotation.ImportSelector;
|
|
import org.springframework.core.io.support.SpringFactoriesLoader;
|
|
import org.springframework.core.io.support.SpringFactoriesLoader;
|
|
import org.springframework.core.type.AnnotationMetadata;
|
|
import org.springframework.core.type.AnnotationMetadata;
|
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -29,11 +33,16 @@ public class MyAutoConfig {
|
|
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
|
|
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
|
|
// 加载我们编写的spring.factories文件
|
|
// 加载我们编写的spring.factories文件
|
|
// com.sf.config.MyAutoConfig$MyImportSelector=\
|
|
// com.sf.config.MyAutoConfig$MyImportSelector=\
|
|
- // com.sf.config.MyAutoConfig.OtherAutoConfig1,\
|
|
|
|
- // com.sf.config.MyAutoConfig.OtherAutoConfig2
|
|
|
|
- List<String> factoryNames = SpringFactoriesLoader.
|
|
|
|
- loadFactoryNames(MyImportSelector.class, null);
|
|
|
|
- return factoryNames.toArray(new String[0]);
|
|
|
|
|
|
+ // com.sf.config.MyAutoConfig.OtherAutoConfig1,com.sf.config.MyAutoConfig.OtherAutoConfig2
|
|
|
|
+// List<String> factoryNames = SpringFactoriesLoader.loadFactoryNames(MyImportSelector.class, null);
|
|
|
|
+ List<String> factoryNames = ImportCandidates.load(MyImportSelector.class, null).getCandidates();
|
|
|
|
+ List<String> configurations = ImportCandidates.load(AutoConfiguration.class, null).getCandidates();
|
|
|
|
+ System.out.println(">>>>>>>>>>>>>>>>>");
|
|
|
|
+ configurations.forEach(System.out::println);
|
|
|
|
+ System.out.println(">>>>>>>>>>>>>>>>>");
|
|
|
|
+// List<String> factoryNamesAuto = SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class, null);
|
|
|
|
+// return factoryNames.toArray(new String[0]);
|
|
|
|
+ return StringUtils.toStringArray(factoryNames);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|