今日目录
1.弹簧简介
2.弹簧功能
3、春天的由来
4.Spring架构
5、弹簧的优点
1. Spring介绍
Spring 是一个轻量级Java 开发框架,于2003 年推出,由Rod Johnson 创建。简单来说,Spring是一个分层的JavaSE/EE全栈(一站式)轻量级开源框架。
2. 弹簧功能
Spring致力于提供一种管理业务对象的方法。
Spring的主要目的是让JavaEE更容易使用并促进良好的编程习惯。
Spring 致力于为J2EE 应用程序的所有层提供解决方案,而不是仅仅关注特定的解决方案层。 Spring 是企业应用程序开发的“一站式”选择,跨越表示层、业务层和持久层。然而,Spring并不是要取代这些现有的框架,而是要与它们无缝集成。
3、春天的由来
Spring 的引入是为了取代Enterprise JavaBeans (EJB) 的臃肿、低效和不实用的特点。
由于传统的J2EE应用程序开发效率低下,加之应用服务器厂商对不同技术的支持不完全统一,J2EE应用程序并没有真正兑现“一次写入、随处运行”的承诺。 Spring作为一个开源中间件,独立于各种应用服务器,无需应用服务器支持即可提供声明式事务、事务处理等应用服务器功能。
4.Spring架构
Spring框架是一个分层架构,包含一组功能元素,分为大约20个模块。这些模块分为核心容器、数据访问/集成、Web、AOP(面向方面编程)、Instrumentation和测试部分,如下图所示。
核心容器
1.Core和Beans模块提供了Spring最基本的功能,并提供IoC和依赖注入能力。这里的基本概念是BeanFactory。 BeanFactory 提供了工厂模式的经典实现,消除了对编程单例模式的需要,允许依赖关系和配置与程序逻辑完全分离。
2. Context 模块构建在core 和beans 之上,提供了一种框架式的方式来访问对象,类似于JNDI 注册表。 Context 包继承了Beans 包的功能,还提供了对国际化(I18N)、事件传播、资源加载、通过servlet 容器创建透明上下文等的支持,以及许多JavaEE 功能,例如:添加。如EJB 和JMX。核心接口是ApplicationContext。
3.Expression Language是一个表达式语言模块,它提供了在运行时查询和操作对象图的强大功能。支持访问和修改属性值、方法调用、数组、容器和索引器,支持访问和修改命名变量,支持算术和逻辑运算,支持从Spring 容器检索bean,列表投影它还支持诸如、 选择、和常见的列表聚合。
数据访问/集成
1. JDBC 模块提供了JDBC 抽象,消除了冗长的JDBC 编码和数据库供应商特定错误代码的解析。
2. ORM 模块为常用的“对象关系”映射API 提供集成层。 其中包括JPA、JDO、Hibernate 和iBatis。 ORM 包装器允许您组合Spring 提供的所有功能以实现“对象/关系”映射,包括简单的声明式事务管理。
3. OXM 模块提供支持对象和XML 映射的抽象层,例如JAXB、Castor、XMLBeans、JiBX 和XStream。
4. JMS模块提供了一组“消息生产者和消费者”模板来简化JMS的使用。 JMS 用于在两个应用程序之间或在分布式系统中发送消息以进行异步通信。
5. 事务模块通过简单的声明式事务管理来支持程序。程序还可以使用POJO 提供事务,只要它们是Spring 管理的对象。
网络
1.Web-Socket模块,WebSocket协议是HTML5中的新协议。它实现了浏览器和服务器之间的全双工通信,Spring支持webSocket通信。
2. Web 模块提供基本的Web 功能。例如,它提供了一个RestTemplate类,该类提供了多个文件上传、集成的IoC容器、远程进程访问、Web服务支持以及方便地访问Restful服务。
3. Web Servlet 模块提供Web 应用程序的模型-视图-控制器(MVC) 实现。 Spring MVC 框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等,以及一组非常易于使用的JSP 标签,可以与其他Spring 技术完全无缝地工作。
4.Web-Portlet模块提供Portlet环境下的MVC实现
奥普
1、AOP模块提供了面向切面的编程实现,符合AOP联盟规范,允许定义方法拦截器和入口点。这使得代码的功能耦合更少,分离更清晰。此外,源代码级元数据功能可用于将各种行为信息合并到您的代码中。
2.Aspects模块提供AspectJ集成。
3. Instrumentation 模块提供类级工具支持和类加载器级实现,这些实现可在某些特定应用程序服务器上使用。
测试
1. Test模块提供使用JUnit和TestNG测试Spring组件的支持,提供一致的ApplicationContext,并缓存这些上下文,以便你的代码可以独立测试。
5、弹簧的优点
方便分离,简化开发
Spring是一个大型工厂,它允许您将所有对象创建和依赖维护交给Spring管理。
AOP编程支持
Spring提供了面向方面的编程,可以让你轻松实现阻塞程序权限、监控行为等功能。
声明式事务支持
事务管理无需手动编程,通过配置即可完成。
方便程序测试
Spring支持Junit4,Spring程序可以通过注解轻松测试。
方便集成各种领先框架
Spring直接支持各种优秀的开源框架,包括Struts、Hibernate、MyBatis和Quartz。
使JavaEE API 更易于使用
Spring对一些JavaEE开发中非常难使用的API(如JDBC、JavaMail、远程调用)提供了封装,大大降低了这些API的应用难度。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。