创建个maven项目
实体类
以前xml配置组件扫描
配置类配置组件扫描
@configuration也是一个component
自定义扫描规则
会扫描当前包下所有的类,matcn 方法返回为true的就会加入容器
例如
使用@import直接就将bule加入bean容器了
实现了importSelector的类会把方法中返回的类red放入容器
自己指定创建bean rainbow
从容器里拿这个colorFactoryBean,只会拿到他创建的color对象
如果想拿到原本的colorFactoryBean对象,需要加前缀**&**
生命周期:bean创建-初始化-销毁
xml定义 初始化方法和销毁方法
注解类型 初始化方法和销毁方法
默认单例模式下 创建容器的时候,会直接创建bean对象,并且调用init初始化方法
关闭容器,对象销毁
多实例prototype情况下,使用该对象的时候,才会调用 bean的构造方法和初始化方法,
并且,在关闭容器的时候,不会调用该bean的destory方法
另外一种初始化方法和销毁方法 实现接口
从源码可以看到 在初始化之前和之后,会调用BeanPostProcessor相关前置后置方法
bean后置处理器有一个接口实现类
另外 通过容器获取环境,环境也可以获取配置文件中的值
@autowire根据类型注入
结合@qualifier使用 指定名称
@autowire非必需注入
@Primary 首选bean
@autowire使用在方法上
@autowire标在构造器上
放在构造器的参数上,效果也是一样的
@autowire放在@bean的方法参数旁边,这里省略不写



