ApplicationContext的三个常用实现类:

    ApplicationContext **context = new ClassPathXmlApplicationContext(“bean.xml”);
    他可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。
    ApplicationContext _context1 = _new _FileSystemXmlApplicationContext(“bean.xml”); **
    它可以加载磁盘任意路径下的配置文件(必须有访问权限)
    _ApplicationContext _context2 = _new _AnnotationConfigApplicationContext(“bean.xml”);
    它是用于读取注解创建容器的_

    核心容器的两个接口引发的问题:
    ApplicationContext:
    她在创建核心容器时,创建对象的策略是采用立即加载的方式__ 也就是说,只 要一读取完配置文件马上就要创建配置文件中配置的对象
    BeanFactory:
    它在构建核心容器时,创建对象采取的是延迟加载的方式,也就是说,什么时候根据id获取对象了,什么时候才真正的获取对象
    **

    Bean的作用范围调整:
    bean标签的scope属性:
    作用:用于指定bean的作用范围
    singleton: 单例的(默认值)
    prototype: 多例的
    request: 作用于web应用的请求范围
    session: 作用于web应用的会话范围
    global-session: 作用于集群环境的会话范围(全局会话范围),当不是集群环境时,他就是session

    构造函数注入:
    使用标签:
    标签中的属性:
    type:用于指定要注入的数据的数据类型,该数据类型也是构造函数中某个或某些参数的类型
    index: 用于指定要注入的数据给构造函数中指定索引位置的参数赋值,索引的位置是从0开始
    name:用于指定给构造函数中指定名称的参数赋值
    value: 用于给基本类型和String类型提供数据
    ref: 用于指定其他的bean类型数据
    set方法注入
    设计的标签:
    标签的属性:
    name: 用于指定注入时所调用的set方法的名称
    value: 用于提供基本类型和String类型的数据
    ref: 用于指定其他的bean类型数据。它指的就是spring的IOC核心容器中出现过的bean对象

    bean对象的生命周期:
    单例对象:
    出生: 当容器创建时对象出生
    活着: 只要容器还在,对象一直活着
    死亡: 容器销毁,对象死亡
    总结: 单例对象的生命周期和容器相同

    多例对象:
    出生: 当我们使用对象时spring框架为我们创建
    活着: 对象只要是在使用过程中就一直活着
    死亡: 当对象长时间不用,且没有别的对象引用时,由Java的gc回收

    注解:
    Component:
    作用: 用于把当前类对象存入spirng容器中
    属性: value: 用于指定bean的id,当不写时,默认时当前类名,首字母小写
    Controller:一般用在表现层
    Service: 一般用在业务层
    Repository: 一般用在持久层

    用于注入数据的:
    和xml里的property意思一样
    Autowired:
    作用: 自动按照类型注入,只要容器中有唯一一个的bean对象类型和注入的变量类型匹配,就可以注入成功

    Qualifier:
    作用: 在按照类中注入的基础上再按照名称注入。它在给类成员注入时不能单独使用,但在方法参数注入时可以
    value: 用于指定注入bean的id

    Resource
    作用: 直接按照bean的id注入,它可以独立使用
    name: 用于指定的bean的id

    Scope:
    和xml里的scope一样,指定作用域范围
    @PostConstruct 初始化方法执行的注解
    @PreDestroy 摧毁方法执行的注解

    **