1.包扫描+组件标注注解(@Controller/@Service/@Repository/@Component) [这种方式局限自己写的类]
2.@Bean[导入的第三方包里面的组件]
3.@Import[可以快速给容器中导入一个或者多个组件]
3.1、@Import(要导入到容器中的组件):容器中就会自动注册这个组件,id默认是全类名
3.2、ImportSelector:返回需要导入的组件的全类名数组 (在springboot用的非常多)
3.3、ImportBeanDefinitionRegistrar:手动注册bean到容器中
4.使用spring提供的FactoryBean(工厂bean):在spring与其他框架整合时,用的比较多
4.1、默认获取到的是工厂bean调用getObject创建的对象
4.2、要获取工厂Bean本身,需要在给id前面加一个& (即:&colorFactoryBean)