让我们来聊聊Spring

     

初识Spring框架

Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP(Aspect Oriented Programming,面向切面编程)。

 

什么是Spring?

Spring 是一个轻量级的 DI / IoC 和 AOP 容器的开源框架,来源于 Rod Johnson 在其著作《Expert one on one J2EE design and development》中阐述的部分理念和原型衍生而来。

Spring 提倡以“最少侵入”的方式来管理应用中的代码,这意味着我们可以随时安装或者卸载 Spring。

Spring适用于Java应用,简化了Java开发。此外,Spring 以海纳百川的胸怀整合了开源框架中众多的三方框架,逐渐成为使用最多的JavaEE企业应用开源框架。

 

Spring中的术语

 

框架

框架是完成一定功能的半成品。

框架可以帮我们完成的是:项目的整体框架,一些基础功能,规定了类和对象如何创建、如何协作等。

当我们开发一个项目时,框架帮助我们完成一些基础的功能,我们再去完成一些项目相关的业务功能,那这个项目就完成了。

 

非侵入式设计

从框架角度理解无需继承框架提供的任何类。

这样我们在更换框架时,之前的代码几乎可以继续使用。


JavaBean

符合JavaBean 规范的Java类。

POJO

即 Plain Old Java Objects,简单老式 Java 对象。

它可以包含业务逻辑或持久化逻辑,但不担当任何特殊角色且不继承或不实现任何其它Java框架的类或接口。


容器

在日常生活中容器就是一种盛放东西的器具,从程序设计角度看就是装对象的的对象,因为存在放入、拿出等操作,所以容器还要管理对象的生命周期。
 

Spring的优势

 

低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦。 )

声明式事务管理(基于面向切面,在Spring中我们通过声明式方式灵活地进行事务管理,有效的提高开发效率和质量)

方便集成优秀框架(如Mybatis、Hibernate等)

降低JavaEE API的使用难度(如JDBC、JavaMail、远程调用等)

Spring源码是经典学习之道(如果想在短时间提高技术水平,学习和研究Spring源码将会使你收到意想不到的效果)

 

Spring能帮我们做什么

 

Spring 能帮我们根据配置文件创建组装对象之间的依赖关系。

Spring 面向切面编程帮助我们无耦合实现日志记录、性能统计、安全控制。

Spring 非常简单的帮我们管理数据库事务。

Spring 提供三方数据访问框架(Hibernate、JPA)无缝集成,而且自己提供了JDBC的访问模板.

Spring 提供了第三方Web(如Struts1/2、JSF)框架无缝集成,而且提供了一套Spring MVC框架,来方便web层搭建。

Spring 能方便与JavaEE (如Java Mail、任务调度)整合、与更多技术整合(比如Redis、MongoDB)。

Spring 框架结构图


 

数据访问与集成

JDBC

使用JDBC代码会导致大量的样板式代码,如数据库连接、创建语句、处理结果、关闭数据库的操作。

Spring的JDBC和DAO模块抽象了这些样板式代码,使我们的数据库代码简单明了,还可以避免因为关闭数据库资源失败而引发的问题。


Transaction声明式事务管理

Spring提供了ORM模块在对DAO支持之上,并为多个ORM框架提供了一种构建DAO的简便方式。Spring没有创建爱你自己的ORM解决方案,而是对许多流行的ORM框架进行集成。包括Hibernate、Java Persisternce API、Java Data Object。

 

OXM 简单理解

例 如,您可能有一个带有几个属性的简单 bean,且您的业务需要将那个 Java 对象转换为一个 XML 文档。Spring 的 O/X Mapper 能够为您解决那个问题。如果反过来,您需要将一个 XML 文档转换为一个简单 Java bean,Spring 的 O/X Mapper 也能胜任。
 
Messaging模块

Spring Framework 4 包含了一个新的spring-messaging 模块,该模块从使用了 Spring Integration 工程的核心概念如 Message, MessageChannel,MessageHandler和别的一些可以作为消息架构的基础组件。这个模块同样也提供了一些映射消息到方法的注解,类似于基于编程模型的spring mvc注解。

 

JMS模块

Java消息服务(Java Message Service ,JMS)是一个Java标准,定义了使用消息代理的通用API。借助JMS,所有遵从规范的实现都使用通用的接口,这就类似于JDBC为数据库操作提供了通用的接口一样。

Spring通过基于模板的抽象为JMS功能提供了支持,这个模板也就是JmsTemplate。使用JmsTemplate,能够非常容易地在消息生产方发送队列和主题消息,在消费消息的那一方,也能够非常容易地接收这些消息。Spring还提供了消息驱动POJO的理念:这是一个简单的Java对象,它能够以异步的方式响应队列或主题上到达的消息。

 

Web与远程调用

包含了Web、Web-Servlet、WebSocket、Web-Porlet模块。

Instrumentation
    
    Spring的Instrumentation模块为JVM添加代理(agent)功能。为Tomcat提供一个织入代理,能够为Tomcat传递类文件,就像这些文件是被类加载器加载的一样。


Spring的AOP

在AOP模块中,Spring对面向切面编程提供了丰富的支持。这个模块是Spring应用中开发切面的基础。

 

Spring核心容器(Core Container)

容器是Spring框架最核心的部分,它管理Spring应用中bean的创建、配置和管理。在该模块中,包括了Spring bean工厂,它为Spring提供了DI功能。基于bean工厂,我们会发现有多种Spring 应用上下文的实现,每一种都提供了配置Spring的不同方式。该模块提供了许多企业服务(如E-mail、JNDI访问、EJB集成和调度)

    
Test模块

支持使用JUnit和TestNG对Spring组件进行测试。


总结

现在您应该对Spring的功能特性有了一个清晰的认识。Spring 简化企业级Java开发,促进代码的松散耦合。成功的关键在于依赖注入和AOP。后续文章我们会来聊聊IOC和AOP,用代码的方式让您更加深入的理解。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值