zoukankan      html  css  js  c++  java
  • spring

    spring

    1、spring容器:spring框架认为应用程序由一个又一个组件构成,而spring容器就是对这些组件的生命周期进行管理及关系的维护------IoC-----工厂模式/反射
    2、spring容器的接口BeanFactory和ApplicationContext,ApplicationContext是BeanFactory的子接口。两者实例化容器中的Bean的时机不同,前者           在容器创建ApplicationContext实例时,会预初始化容器中的全部需要的Bean,后者需等到程序需要时才会创建。对于普通凡人JavaEE应用,推荐    使用ApplicationContext做为spring容器,因为它在创建容器会同时创建需要的所有Bean,因而会有更大的系统开销,但是后面的响应速度会更快。

    3、spring的特点:(1)、轻量,低侵入式;
              (2)、依赖注入(IoC),降低了业务对替换对象的复杂性,提高了组件之间的解耦;在容器在容器
              (3)、面向切面(AOP),将功能业务与非功能业务分离开来;
              (4)、容器;
              (5)、框架,支持与其他框架的整合。
    4、spring容器允许我们在创建对象时,就初始化某些属性。

        两种方法:set();设置注入 、 构造函数 构造注入。
    5、IoC 即用XML来定义生成的对象。 工厂模式+反射
      依赖注入(控制反转)是调用者依赖容器设置容器属性或者注入其他Bean的引用的方式。
      程序运行过程中,如果需要另一个对象协作,无须在代码中创建被调用者,直接通过容器注入。
      依赖注入是目前最优秀的解耦方式,依赖注入让spring的Bean已配置文件组织在一起,而不是以硬编码(new)的方式耦合在一起。
    6、组件作用域

      singleton   单例对象,在容器管理范围内

      prototype   原型对象,容器创建----垃圾回收(由jvm回收)

      request      同一个请求范围内

      session      同一个会话范围内

      global session(门户网站使用)

    7、组件的自动装配

      (1)、设置<bean>元素的属性autowire

      (2)、autowire自动装配类型:byName

                  byType

                  constructor

                 autodetect

      (3)、byName,byType都是使用setting注入方式  

      (4)、byName自动装配的时候,会根据调用者中需要装配的属性名称去查找spring容器,看是否有对应的Bean组件的实例存在,如果存在就自动装配,如果不存在,就装配失败,但不会抛出任何异常,只有当程序运行时,才会抛出空指针异常

      (5)、byType自动装配的时候,会根据调用者中需要装配的属性的类型去查找spring容器,看是否有对应的相同类型的Bean组件的实例存在,如果类型是接口,那么就去找接口的实现类,如果存在就自动装配,如果不存在就装配不成功,但不会抛出任何异常,运行时,代码会抛出空指针。当符合条件的实例多于1个时,它不就知道装配哪一个了,就抛出:UnsatisfiedDependencyException

      (6)、constructor构造装配,会根据构造器中的属性类型去查找容器,如果类型是接口,那么就去找接口的实现类,如果存在就自动装配,如果不存在就装配不成功, 但不会抛出任何异常,运行时,代码会抛出空指针。当符合条件的实例多于1个时,它不就知道装配哪一个了,就抛出:UnsatisfiedDependencyException

    8、手动装配>自动装配,当两者同时存在时,以手动装配为准,自动装配虽然简单,直接,粗暴,但是结构不清晰,维护性很差,推荐使用手动装配

  • 相关阅读:
    为什么Java的main方法必须是public static void?
    2. 直接插入、折半插入、希尔排序及其比较(插入类排序)
    1. 冒泡与选择排序及其比较
    0.排序介绍与性能度量
    (十)更快的排序算法(归并、快排、基数)
    (九)排序(选择、插入、希尔)
    (八)递归
    (七)栈的三种实现
    (六)栈的规则及应用
    (五)如何写测试类
  • 原文地址:https://www.cnblogs.com/tushengadbm/p/5686565.html
Copyright © 2011-2022 走看看