spring核心的知识
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 15:34:15
spring核心的知识
spring核心的知识
spring核心的知识
Spring是构造java应用的轻量级框架,这里的轻量级不是指类的多少,或者发行包的大小,而是指最小侵入,也就是说,你可以只需改最少的代码就可以获得它带来的好处,不像EJB中创建EntityBean那样具有很强的侵略性.
IOC(Inversion of Control)控制反转:它是Spring的核心,是一种将组件依赖关系的创建和管理置于程序外部的技术.根据我个人的使用是这么理解的:如果用IOC,一个类A中如果要用到其他类B的功能,必须在本类中写入B,同时声明对象B b= new B(),调用方法;而如果使用IOC后,这里的new B()就不必在这里写了,而是在运行时根据spring的xml中的配置动态地把B的实例对象传递给A.这是我个人的理解.IOC也叫DI(Dependency Injection)依赖注入,根据上面的解释应该很好理解字面的意思.IOC一般跟接口配合使用,两者都会得到好处,不难理解,使用接口的话没有IOC,把采用接口的程序连接起来,复杂度很高,代码量也不会少,而有了IOC,代码量会少很多.
面向切面编程(AOP):它是OOP的补充,而不是OOP的对手.不用OOP只用AOP写程序几乎不可能. OOP可以有效解决很多问题,但在有些问题的解决上,运用AOP会使工作更加聪明轻松.AOP使得程序更加模块化,行程多个"关注点",而同一程序的很多部分重复使用这些"关注点".举个容易懂的例子:系统日志和安全控制是很多程序典型的横切,横切的意思就是把程序横向展开,里面很多方法都会用到这些功能,而AOP是实现横切的有效工具.如果不用AOP,我们要有一个日志类,然后在每一个方法开始和结束时都要调用这个类的两个方法才能完成日志记录功能,而使用AOP之后,只需要声明日志类的相关方法应该在每个方法的开始和结束时调用就可以了.在Spring框架内部,AOP大量用于事务管理中.AOP的核心概念有下面几个:
联结点(JoinPoint):是程序执行过程中的一个特定点.例如:调用一个方法、类初始化、对象初始化等.它用来定义程序在哪里通过AOP加入横向逻辑.是AOP核心
通知(Advice):在某一个联结点处运行的代码成为通知.根据在联结点之前执行和之后执行分为前置通知和后置通知.
切入点(Pointcut):来定义某一个通知该何时执行的一组联结点.通常会组件复杂的切入点来控制通知什么时候运行.很重要
方面:通知+切入点的组合为方面,AOP就是指面向方面编程,指定义了逻辑和何时执行该逻辑.
织入(Weaving):将方面真正加入程序代码的过程.静态AOP在编译阶段完成.而Sping中在动态运行时完成.
目标(Target):指受到AOP修改的对象,也叫被通知对象.
引入(Introduction):通过引入,我们可以在一个对象中加入新的方法和属性,改变它的结构.即使一个类没有实现某接口,我们也可以修改它,使它像是实现了这个接口.
同样AOP分为静态和动态的.静态是指横切逻辑实在编译时就加入程序中的,如果修改横切需要重新编译代码,例如AspectJ.而Spring中是动态的,也就是运用了上面IOC的思想,横切逻辑在运行时动态加入.静态和动态的在一起使用时功能更加强大