- bean注册
- 第三方jar包的类想添加到ioc中,加不了@Component该怎么办呢。
- 可以使用@Bean和@Import
- 引入jar包,可以使用maven安装到本地仓库。
- 修改bean的名字:@Bean("aaa")
- 使用ioc的已经存在的bean对象,如Country:public Province province(Country country)
- 手动扫描类:@Import(CommonConfig.class)
- 手动扫描类,优雅地加入多个: @Import(CommonImportSelector)
-
public class CommonImportSelector implements ImportSelector { public String[] selectImports(AnnotationMetadata importingClassMetadata) { return new String[]{"com.itheima.config.CommonConfig"}; } }
- 读配置文件,类名和上面一致。方法不同。
@Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { //读取配置文件的内容 List<String> imports = new ArrayList<>(); InputStream is = CommonImportSelector.class.getClassLoader().getResourceAsStream("common.imports"); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = null; try { while((line = br.readLine())!=null){ imports.add(line); } } catch (IOException e) { throw new RuntimeException(e); } finally { if (br!=null){ try { br.close(); } catch (IOException e) { throw new RuntimeException(e); } } } return imports.toArray(new String[0]); }
- 组合注解
启动类直接使用组合注解