对于spring框架相信小伙伴们都是知道的,那么你们是怎么理解它的呢?它是一个怎么样的框架?这里小编就来说说我的理解。
对我来说,spring可谓是在开发中最好的伙伴之一了,它是一个十分优秀的轻量级框架,说它优秀可不是我吹的,你看它目前的业界使用率就知道。为什么它这么优秀?因为它的两个核心:
Ioc控制反转
首先是这个家伙,我们可以叫它控制反转,这不是功能,而是一种思想,指的是我们将对象的控制权从应用代码本身转移到外部容器。通过iOC容器在程序运行期间基于jAVA反射机制动态的创建对象,配置对象,建立对象之间的依赖关系,管理对象的生命周期。
Ioc一般分为两种类型来使用,DI依赖注入和依赖查找(Dependency Lookup)。最常用的就是依赖注入。
依赖注入:组件不做定位查询,只提供普通Java方法让容器去决定依赖关系。容器全dao负责的组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。
常见的依赖注入方式有:set注入和构造器方式注入。通过依赖注入在程序运行期间动态的注入依赖对象,建立对象之间的依赖关系,降低对象之间的耦合度。
在刚学习spring的时候,有非常多小伙伴控制反转和依赖注入傻傻分不清楚,这里我们就顺便说一下:
控制反转:创建对象实例的控制dao从代码控制剥离到IOC容器控制,实际实现就是你、指在xml文件控制,侧重原理。
依赖注入:创建对象实例时,为这个对象注入属性值或其它对象实例,侧重实现。
AOP面向切面编程
这是一个对面向对象编程的补充。Aop中,我们会将通用的业务功能代码块封装起来作为切面,然后通过指定切入点,也就是指定切面作用的目标方法,最后通过不同类型的通知,告诉spring容器在调用目标方法的什么时机来插入切面代码块。最常见的Spring声明式事物管理就是基于AOP,在程序运行期间,通过动态代理技术给service层的bean追加事物管理,保证事物的ACID特性。同时,我们还可以通过AOP单独封装一些任务,通过动态代理技术,能够在不改变原有代码的情况下追加功能,提高代码的复用和简化编程。
Spring 的优势
-低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦)
-声明式事务管理(基于切面和惯例)
-方便集成其他框架(如MyBatis、Hibernate)
-降低 Java 开发难度
-Spring 框架中包括了 J2EE 三层的每一层的解决方案(一站式)
除此之外,Spring还提供了很多优秀的插件,像springmvc,springjdbc,springorm等等,spring还可以用来集成其他优秀的框架,如mybatis,hibernate,struts等。
以上就是今天关于spring的所有内容,更多详细java基础教程,可以关注奇Q工具网了解详情。
推荐阅读: