Bean的管理
如果使用的是自定义的类,可以使用功能@component以及它的延伸注解实现Bean的注入,但是如果引入第三方的类,是无法使用@Component注解的,这时需要用到Bean注解。
需要再启动类/配置类中(使用@Configuration注解的类)中定义一个方法,这个方法返回一个需要ioc容器管理的对象,使用@Bean注解来使这个方法交给ioc容器管理,可以通过@Bean的name或者Value注解指定bean的名称。
起步依赖的原理就是Maven中的依赖传递。
springboot只能扫描当前包及其子包
自动配置原理
方法:
第一种:(不推荐)
@ComponentScan扫描
第二种:(SpringBoot自动配置就是基于这个)
1在启动类中使用@Import(TokenParser.class),导入一个普通类,不需要加其他注解,自动声名为IOC容器对象。
2.导入一个配置类(使用@Configuration注解的类)@Import(nbconfig.class),配置类中声明的Bean都会加入到Ioc容器管理。
3.导入一个ImportSelecetor的实现类,返回一个需要导入的类名字符串。
import(MyImportSelector.class)
public calss MyInportSelector implements ImportSelector{
public String[] selectImports(AnnotationMetadata importingClassMetadata){
return new String[]{"com.example.HeaderConfig"}
}
}