Spring入门介绍

Spring介绍

Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Jonnson创建。简单来说,Spring是一 个分|层的JavaSE/EE full-stack(一站式)轻量级开源框架。

Spring的特点

1.方便解耦,简化开发

通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

2.AOP编程的支持

通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统0OP实现的功能可以通过AOP轻松应付。

3.声式事务的支持

在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质里。

4.方便程序的则试

可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如: Spring对Junit4支持 ,可以通过注解方便的测试Spring程序。

5.方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供 了对各种优秀框架(如Struts,Hibermate、Hessian、Quartz) 等的直接支持。

6.降低Java EE API的使用难度

Spring对很多难用的Java EE API (如JDBC, JavaMail, 远程调用等)提供了一-个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

7.Java源码是经典学习范例

Spring的源码设计精妙、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。

Spring的好处

1.低侵入式设计,代码污染极低
2.独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once, ,Run Anywhere的承诺
3. Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦
4. Spring的AOP支持允许将一 些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用
5. Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问
6. Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部

耦合和内聚介绍

耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。

在软件工程中,耦合指的就是就是对象之间的依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合

内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。

内聚和耦合是密切相关的,同其他模块存在高耦合的模块意味着低内聚,而高内聚的模块意味着该模块同其他模块之间是低耦合。在进行软件设计时,应力争做到高内聚,低耦合

pring核心概念介绍

IoC(核心中的核心):Inverse of Control控制反转对象的创建权力由程序反转给Spring框架。

AOPAspect Oriented Programming面向切面编程在不修改目标对象的源代码情况下,增强IoC容器中Bean的功能。

DIDependency Injection,依赖注入在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中!!

Spring容器指的就是IoC容器

什么是IoC容器?

所谓的IoC容器就是指的Spring中Bean工厂里面的Map存储结构(存储了Bean的实例)。

l Spring框架中的工厂有哪些

ApplicationContext接口()

1.实现了BeanFactory接口

2.实现ApplicationContext接口的工厂,可以获取到容器中具体的Bean对象

BeanFactory工厂(Spring框架早期的创建Bean对象的工厂接口

1.实现BeanFactory接口的工厂也可以获取到Bean对象

2.其实通过源码分析,不管是BeanFactory还是ApplicationContext,其实最终的底层BeanFactory都是DefaultListableBeanFactory

l ApplicationContext和BeanFactory的区别?

1.创建Bean对象的时机不同:

2.BeanFactory采取延迟加载,第一次getBean时才会初始化Bean。

3.ApplicationContext是加载完applicationContext.xml时,就创建具体的Bean对象的实例。(只对BeanDefition中描述为是单例的bean,才进行饿汉式加载

什么是AOP?

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程 AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构AOP最早由AOP联盟的组织提出,制定了一套规范.Spring将AOP思想引入到框架中,必须遵守AOP联盟的规范通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型

什么是DI(依赖注入)

什么是依赖?

依赖指的就是Bean实例中的属性

属性分为:简单类型8种基本类型和String类型)的属性、POJO类型的属性、集合数组类型的属性。

什么是依赖注入?

依赖注入:Dependency Injection。它是 spring 框架核心 ioc 的具体实现。

为什么要进行依赖注入?

我们的程序在编写时,通过控制反转,把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。

ioc 解耦只是降低他们的依赖关系,但不会消除。例如:我们的业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系,在使用 spring 之后,就让 spring 来维护了。

简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。

原文地址:https://www.cnblogs.com/wu-yi/p/12196334.html