核心容器总结

容器相关

  • BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的Bean延迟加载
  • ApplicationContext接口是Spring容器的核心接口,初始化时Bean立即加载
  • ApplicationContext接口提供基础的Bean操作相关方法,通过其他接口扩展其功能
  • ApplicationContext接口常用初始化类
    • ClassPathXmlApplicationContext
    • FileSystemXmlApplicationContext

Bean相关

<bean
    id="bookDao"                                    bean的Id
    name="dao bookDaoImpl daoImpl"                  bean的别名
    class="com.xxx.dao.impl.BookDaoImpl"            bean类型,静态工厂类,FactoryBean类
    scope="singleton"                               控制bean的实例数量
    init-method="init"                              生命周期初始化方法
    destroy-method="destroy"                        生命周期销毁方法
    autowire="byType"                               自动装配类型
    factory-method="getInstance"                    bean工厂方法,应用于静态工厂或实例工厂
    factory-bean="com.xxx.factory.BookDaoFactory"   实例工厂bean
    lazy-init="true"                                控制bean延迟加载
/>

依赖注入相关

<bean id="bookService" class="com.xxx.service.impl.BookServiceImpl">
    <constructor-arg name="bookDao" ref="bookDao"/>                         构造器注入引用类型
    <constructor-arg name="userDao" ref="userDao"/>
    <constructor-arg name="msg" ref="WARN"/>                                构造器注入简单类型
    <constructor-arg name="java.lang.String" index="3" value="WARN"/>       类型匹配与索引匹配
    <property name="bookDao" ref="bookDao"/>                                setter注入引用类型
    <property name="userDao" ref="userDao"/>
    <property name="msg" ref="WARN"/>                                       setter注入简单类型
    <property name="names">                                                 setter注入集合类型
        <list>                                                              list集合
            <value>itcast</value>                                           集合注入简单类型
            <ref bean="dataSource"/>                                        集合注入引用类型
        </list>
    </property>
</bean>