手记

谈谈我对Spring 的理解

  1. Spring 实现了工厂模式的工厂类(在这里有必要解释清楚什么是工厂模式),这个类名为
    BeanFactory(实际上是一个接口),在程序中通常BeanFactory 的子类ApplicationContext。
    Spring 相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例对象的类
    名和实例对象的属性。

  2. Spring 提供了对IOC 良好支持,IOC 是一种编程思想,是一种架构艺术,利用这种思想
    可以很好地实现模块之间的解耦。IOC 也称为DI(Depency Injection),什么叫依赖注入呢?
    譬如,Class Programmer
    {
    Computer computer = null;
    public void code()
    {
    //Computer computer = new IBMComputer();
    //Computer computer = beanfacotry.getComputer();
    computer.write();
    }
    public void setComputer(Computer computer)
    {
    this.computer = computer;
    }
    }
    另外两种方式都由依赖,第一个直接依赖于目标类,第二个把依赖转移到工厂上,第三个彻
    底与目标和工厂解耦了。在spring 的配置文件中配置片段如下:
    <bean id=”computer” class=”cn.itcast.interview.Computer”>
    </bean>
    <bean id=”programmer” class=”cn.itcast.interview.Programmer”>
    <property name=”computer” ref=”computer”></property>
    </bean>

  3. Spring 提供了对AOP 技术的良好封装, AOP 称为面向切面编程,就是系统中有很多各
    不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入
    权限判断,加入异常处理,这种应用称为AOP。实现AOP 功能采用的是代理技术,客户端
    程序不再调用目标,而调用代理类,代理类与目标类对外具有相同的方法声明,有两种方式
    可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在,JDK 中采用Proxy
    类产生动态代理的方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGLI
    B。在生成的代理类的方法中加入系统功能和调用目标类的相应方法,系统功能的代理以
    Advice 对象进行提供,显然要创建出代理对象,至少需要目标类和Advice 类。spring 提供
    了这种支持,只需要在spring 配置文件中配置这两个元素即可实现代理和aop 功能,例如,
    <bean id=”proxy” type=”org.spring.framework.aop.ProxyBeanFactory”>
    <property name=”target” ref=””></property>
    <property name=”advisor” ref=””></property>
    </bean>
5人推荐
随时随地看视频
慕课网APP