创建容器
(类路径加载配置文件)
Applicationcontext ctx = new classPathXmlApplicationcontext("applicationcontext.xml");
(文件路径加载配置文件)
ApplicationContext ctx= new FileSystenXmlApplicationContext("D:\applicationContext.xml");
(加载多个配置文件用,隔开即可)
获取bean
(使用bean名称获取)
ctx.getBean(“bean的名称”)需要进行强转
(使用bean类型获取)
Ctx.getBean(bean的类型文件:Bookdao.class)
(使用bean名称获取并指定类型)
Ctx.getBean(“bean的名称”,Bookdao.class)
BeanFactory是Ioc容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载
AplicationContext接口是Spring容器的核心接口,初始化是bean立即加载
Bean相关
<bean
Id=”” bean的id
name=”” bean的别名
class=”” bean类型,静态工厂类,FactoryBean类
Scope=”” 控制bean的实例数量,默认为单例
init-method="init" 生命周期初始化方法
destroy-method="destory" 生命周期销毁方法
autowire="byType" 自动装配类型
factory-method="getInstance"bean工厂方法,应用于静态工厂或实例工厂
factory-bean="com.itheima.factory.BookDaoFactory” 实例工厂bean
Lazy-init=”” 控制bean延迟加载
>
(开始)
注解开发bean
定义bean可以在它的类里面定义
@Component
业务层@Service
数据层@Repository
表现层@Controller
可以在下面设置各种代替application配置文件操作
非单例@Scope(“prototype”)
Bean的生命周期
构造方法后运行的方法@PostConstruct
彻底销毁前运行的方法@PreDestroy
记得关闭容器ctx.close();
@Configuration代表配置类可以替换掉配置文件application配置文件的外壳
@ComponentScan(“com.”) 代替配置文件的扫描bean
//加载配置类初始化容器要改变为
ApplicationContext ctx= new AnnotationConfigApplicationContext(“配置类”);
获取bean就按类型获取即可
依赖注入
@Autowired进行自动装配.按类型(可以将setter方法去掉了)
如果具有相同类型的bean有多个,需要按名称进行注入
第一步在定义bean的时候加入名称
第二步在@Autowired下面加入@Qualifier(“bean的名称”)