spring核心的知识

时间:2013.06.02 发布人:yanaodemt

spring核心的知识

已解决问题

谷歌yanaodemt用户在2013.06.02提交了关于“大**修仙spring核心的知识”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-10-24T10:04:59。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,谢谢你帮我,祝你快乐,愿你事事如意 !

希望以下的回答,能够帮助你。

第1个回答

用户名:ouyangyueryu  

Spring使造j**a应用的轻量级框架,这里的轻量级不是指类的多少,或者发行包的大小,而是指最小侵入,也就是说,你可以只需改最少的代码就可以获得它带来的好处,不像EJB中创建EntityBean那样具有很来自强的侵略性。

IOC(InversionofControl)控制反转:它是Spring的核心,是一种将组件依赖关系的创建和管理置于程序外部的技术。根据我个人的使用是这么理解的:如果用IOC,一个类A中如果要用到其他类B的功能,必须在本类中写入B,同时声明对象Bb=newB(),调用方法;而如果使用IOC后,这里的newB()就不必在这里写了,而是在运行时根据spring的xml中的配置动态地把B的实例对象传递给A。这是我个人的理解。IOC也叫D整兰五否那终大此湖世一I(DependencyInjection)依赖注入,根据上面的解释应该很好理解字面的意思。IOC一问答般跟接口配合使用,两者都会得到好处,不难理解,使用接口的话没有IOC,把采用接口的程序连接起来,复杂度很脯代码量也不会尽少,而有了IOC,代码量会少很多。

面向切面编程(量争日家样AOP):它是OOP的补充,绍则味方孔印而不是OOP的对手。不用OOP只用AOP场表扬回动率久去写程序几乎不可能。OOP可以有效解决很多问题,但在有些问题的解决上,孩派沉喜抓航济系会节谈运用AOP会使工作更加聪明轻松。AOP使得程序更加模块化,行程多个"关注点",而同一程序的很多部分重复使用这些"关注点"。举个容易懂的例子:系统日志和安全控制是很多程序象知抗座跳供典型的横切,横切的意思就是把程序横向展开,里面很多方法都会用到这些功能,而AOP是实现横切的有效工具。如果不用AOP,我们两我席怎过服激做或比品要有一个日志类,然后在每一个方法开始和结束时都包笔山要调用这个类的两个方法才能完成日志记录功能,而使用AOP之后,只需要声明日志类的相关方法应该在每个方法的开始和结束时调用就可以了。在Spring框架**,AOP大量用于事务管理中。AOP的核心概念有下面几个:

联结点(JoinPoint):是程序执行过程中的一个特定点。例如:调用一个方法、类初始化、对象初始化等。它用来定义程序在哪里通过AOP加入横向逻辑。是AOP核心

通知(Advice):在某一个联结点处运行的代码成为通知.根据在夫当云感攻等李联结点之前执行和预正之后执行分为前置通知和后置通知。

切入点(Pointcut):来定义某一个通知该何时执行的一组联结点。通常会组件复杂的切入点来控制通知什么时候运行。很重要

方面:通知+组刻切入点的组合为方面,AOP就是指面向方面编程,指定义了逻辑和何时执行该逻辑。

织入(We**ing说苦富奏谓掌微置变急交):将方面真正加入程序么根代码的过程。静态AOP在编译阶轴常激令着候乎月段完成。而Sping中在动态运间丝对完陆头引审慢风卷行时完成。

目标(Target):指受到AOP修改的对象,也叫被通知对象。

头志英封良其引入(Intro**ction):通过引入,我们可以在一个对象中加入新的方法和属性,改变它的结构。即使一个类没有实现某接口,我们也可以修改它,使它像是实现了这个接口。

同样AOP分为静态和动态的。静态是指横切逻辑实在编译时就加入程序中的,如果修改横切需要重新编译代码,例如AspectJ。而Spring中是动态的,也就是运用了上面IOC的思想,横切逻辑在运行时动态加入。静态和动态的在一起使用时功能更加强大