转载

spring回顾

Spring可以说是神一般的存在。我们很多时候只是停留在应用的层面。通过这次回顾在来总结一下相应的知识点。

关于spring优势就不在巴拉扒拉的重复了。。。咳咳 ,想到那说到哪吧。。不对的地方还请指正。

Spring的几个核心点无非是:控制反转(IOC),依赖注入(DI),面向切面(AOP),需要说明的是他们都只是一种思想,对于刚接触的同学来说,可能很多官方词汇并不是很能理解。下面说说我对他们的理解:

控制反转:说白了就是自己的事情让别人去做。举个例子:我们想要和一杯果汁,我们有两种可以选择的方案。

1.自己动手去做。那你就需要准备水果,果汁机等材料。。。

2.我们去饮料店直接购买,而且会比你自己做的好那么一丢丢(哈哈。。。)

那么方案二就是所谓的控制反转了,本来你要做的事情让别人做了而已,,,好比我们需要一个对象我们一般直接NEW一个出来,现在不用了,只需要告诉spring 你需要个啥对象,spring直接给你就好了。。。这也为什么说spring只是个容器。因为在spring看来 万物皆对象,spring所管理的一切都是对象。。在你需要的时候送到你面前仅此而已。

依赖注入:那就更好理解了,饮料店把饮料给你的过程就是注入了

面向切面AOP:面向切面比较麻烦一点 ,但是理解了也就那么回事。

说白了就是在不改动原有代码的基础上,动态增加额外的功能。实现方法的增强。。

再来看看关于AOP的几个官方词汇——————

通知,连接点(Joinpoint),切点(Pointcut),目标对象(Target),织入(Weaving),切面(Aspect)

乍一看显得还挺高大上的,,GG……

关于连接点,在这里我用个可能不太恰当的例子吧。类似于座位,很多座位就是很多切入点,,额。。。。切点就是已经使用的座位。。。即 切点是连接点的子集。

目标对象:即需要被增强的目标类

通知:需要给目标方法增强的方法

织入(Weaving)和 切面 (Aspect)都是一种抽象出来的概念。很多个通知就构成了切面。

那么织入就相当吧通知通过代理类加到目标方法 的过程。。。。

这个代理你可以使用jdk的动态代理也可使用spring自身的代理。

关于匿名内部类的使用:

接口:

public interface jumpping {
 
    void  jump();
    void  jump1();
}

操作接口类:

public class JumppingOperOperator {
 
    public void method(jumpping j){
 
            j.jump();
            j.jump1();
    }
}

Main 函数调用:

public class demo {
 
    public static void main(String[] args){
        JumppingOperOperator jo=new JumppingOperOperator();
        jumpping j=new dogImp();
        jo.method(new jumpping() {
            @Override
            public void jump() {
                System.out.print("zhu会跳高");
            }
            @Override
            public void jump1() {
                System.out.print("zhu会跳高1");
            }
        });
 
 
    }
}

好处是不用每次写接口的实现类。

Post Views: 4

原文  http://www.xiwenblog.com/archives/2073
正文到此结束
Loading...