1、xml文件声明注入
2、注解扫描 @ComponentScan @Component @Repository @Service
3、java配置方式 @Configuration @Bean
4、@Import
- 指定类型
@Import({HelloService.class})
public class AppConfig {
}
- 实现ImportSelector
@Import({MyImport.class})
public class AppConfig {
}
public class MyImport implements ImportSelector {
public String[] selectImports(AnnotationMetadata annotationMetadata) {
return new String[]{"com.run.HelloService"};
}
}
- 实现ImportBeanDefinitionRegistrar
@Import({MyImport.class})
public class AppConfig {
}
public class MyImport implements ImportBeanDefinitionRegistrar {
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
//指定bean定义信息(包括bean的类型、作用域...)
RootBeanDefinition rootBeanDefinition=new RootBeanDefinition(HelloService.class);
//注册一个bean指定bean名字(id)
registry.registerBeanDefinition("TestDemo4444",rootBeanDefinition);
}
}