IoC/DI容器是一种设计思想,意味着将设计好的对象交给Spring容器控制,而不是传统的在对象内部直接控制。IoC/DI容器主要控制了外部资源获取,如文件等。在传统Java SE程序设计中,我们直接通过new在对象内部创建依赖对象;而IoC/DI容器则由专门的容器控制对象的创建。IoC/DI容器的优点包括松耦合、方便测试、利于功能复用,以及使得程序结构更灵活。在Spring框架中,Bean的作用域有单例和多例两种。单例模式下,Spring管理的Bean对象是单例的,在容器启动时创建,在getBean调用时返回。多例模式下,可以根据scope属性指定创建Bean对象。对象生命周期管理包括单例和多例两种模式。在单例模式下,创建对象时执行init-method指定的方法,在关闭容器时执行destroy-method指定的方法。在多例模式下,每次创建对象时执行init-method方法。可以通过lazy-init属性设置对象懒初始化。Spring框架中的工厂方法封装了复杂的对象创建过程,提供简单的方法返回对象实例。ClassPathXmlApplicationContext是JavaBean的工厂,getBean是Spring提供的工厂方法。Spring构造器注入使用有参数构造器创建对象。构造器参数标签实现构造器参数注入。Spring的Bean属性注入支持各种类型。