前言:

Spring是一个开源代码的设计层面的框架,解决的是业务逻辑层和其他层的松耦合问题,简单来说,spring是一个分层的Javaee轻量级开源框架.

核心:

背景

传统的J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现writeOnce及Run Anywhere的承诺.Spring作为开源的中间件,独立于各种应用服务器,省会无须应用服务器支持,也能提供应用服务器的功能,如声明式事务/事务处理等等,Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案.可以说Spring是企业应用开发的一站式选择,并贯穿表现层.业务层.持久层.然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合.[摘自百度]

总结起来就是Spring有着自身的优势,带来了春天一样的鲜活的生命力,并且和其他的已有的框架实现了很好的整合.



定义

Spring框架是一个分层的架构,它包含一系列的功能要素分为大约20个模块.下面这个图可见:

[Spring学习之初出茅庐]_应用服务器


核心容器:beans core context expression

i+1

结合咱们之前学习的Struts,Hibemate来学习


                              浏览器
    javascript                                                              服务器
  web                         service                       dao
 struts                                                        hibernate
 spring mvc            spring                       mybatis


SSH框架即:structs     spring     hibernate

SSM框架即:springmvc   spring     mybatis


分层:web层:Struts,spring-MVC
     service层:spring
     dao层:hibernate,mybatis,jdbcTemplate--spring data

框架特征

轻量

轻量级,从大小与开销两方面而言spring都是轻量的.从这个例子我们可以看出:完整的spring框架可以在一个大小之后1mb多的jar文件里发布,并且spring所需要的开销越是微不足道的.与EJB相比,依赖资源少,销毁的资源少

面向切面

允许通过分离应用的业务逻辑与系统级服务进行内聚性开发.

容器

容器给人的概念则是轻量级的,spring包含并管理应用对象的配置和生命周期,可以配置每一个bean如何被创建的

控制反转

一个对象依赖的其他对象会通过被动的方式传递出来,而不是这个对象自己创建或者查找依赖对象.

特性

方便解耦,简化开发

AOP编程的支持

方便程序的支持

方便程序的测试

方便集成各种优秀框架

降低javaEE API的使用难度

spring核心

控制反转和面向切面

总结:

关于spring的两个核心,在后面的博客中会相继介绍,感谢大家的阅读.