spring的基本概念(1)

Spring 是一个开源框架,其官方网站是 https://spring.io/ ,可以在官方网站下载到完整的类库,源代码以及文档,它的图标是一片叶子.

Spring的特点: 1、轻量级 Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API

       2、依赖注入(DI --- dependency injection、IOC ---inversion of control)

       3、面向切面编程(AOP --- aspect oriented programming)

       4、容器 Spring 是一个容器, 因为它包含并且管理应用对象的生命周期

       5、框架 Spring 实现了使用简单的组件配置组合成一个复杂的应用 ;在 Spring 中可以使用 XML 和 Java 注解组合这些对象

       6、一站式 在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 Spring JDBC)

Spring的功能:

  1、Spring 容器提供了IOC机制,可以创建对象以及管理对象之间的调用关系,避免了硬编码造成的程序耦合

  2、提供了AOP(面向切面编程方式)功能,可以实现很多特定功能

  3、声明式事务控制处理 对JDBC进行了轻量级的封装,可以更加灵活的去操作数据库

  4、提供了MVC设计模式的解决方案 提供了文件上传、定时器等常用工具类

  5、对于其他优秀框架的支持(如:Struts、Hibernate、MyBatis、Quartz等)

Spring建立了一个灵活的可热插拔的组件结构,其基础构架可以使用下图来描述:

spring的基本概念(1)

 

核心概念:

1、IoC (Inversion of Control),控制反转,用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转;

2、相对IoC而言,“依赖注入DI (Dependency Injection)”的确更加准确的描述了这种古老而又时兴的设计理念。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中;

 

个人理解为:IoC写的程序自己导入需要的包

      DI是应用软件根据程序导入需要的包

 

AOP,Aspect Oriented Programming: 面向切面编程:

通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率; 在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如事务管理)进行内聚性的开发。应用对象只实现它们应该做的:完成业务逻辑,仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持;

 

个人理解为:降低程序业务逻辑之间的耦合度,提高内聚性

 

上一篇:spring中使用AOP拦截方法


下一篇:GOlang基础知识<二>