zoukankan      html  css  js  c++  java
  • 对Spring的理解

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

         2. Spring提供了对IOC良好支持,IOC是一种编程思想。是一种架构艺术,利用这样的思想能够非常好地实现模块之间的解耦。IOC也称为DIDepency 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功能採用的是代理技术,client程序不再调用目标,而调用代理类,代理类与目标类对外具有同样的方法声明。有两种方式能够实现同样的方法声明,一是实现同样的接口,二是作为目标的子类在,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>

  • 相关阅读:
    Win7 华硕电脑自带摄像头无法打开 方法思路介绍
    P3520 [POI2011]SMI-Garbage
    二分图的最大匹配(模板)
    #数列分块入门 2
    数列分块入门#1
    线段树(标记下传乘法和加法)
    最小费用最大流
    最大流算法(模板)
    编译器出现/mingw32/bin/ld.exe:Permission denied 错误
    1298 圆与三角形
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7294216.html
Copyright © 2011-2022 走看看