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