ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring简介

2021-09-28 19:01:54  阅读:190  来源: 互联网

标签:Web Java 框架 Spring EJB 简介 AOP


Spring

Spring 起源

EJB 弃用

1998 年 Sun 公司 发布 JavaEE 企业级解决方案 EJB1.0 框架,开发者可以使用 EJB 构建企业级应用;在使用 EJB 的过程中,开发者发现 EJB 极度复杂和繁琐。随着时间的推移,很多开发者对 EJB 不再抱有幻想,开始寻求更简便的方法。

Spring 崛起

Spring 是一个开源框架,最早由 Rod Johnson 创建(Spring 之父)。Spring 是为了解决企业级应用开发的复杂性而创建的,使用 Spring可以让简单的 JavaBean 实现之前只有 EJB 才能完成的事情。但 Spring 不仅仅局限于服务器开发,任何 Java 应用都能在简单性、可测试性和松耦合等方面从 Spring 中获益。

Rod Johnson(Spring 之父)2007 年发布 Spring 1.0 版本,直到今天 Spring 框架已经成为基于 POJO 的轻量级 JavaEE 开发框架的领导者。

Spring 是什么

Spring 是分层的 JavaEE 应用一站式的轻量级开源框架,以控制反转(Inverse of Control,IoC)和面向切面编程(Aspect Oriented Programming,AOP)为内核,提供了表现层Spring MVC、持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术

  • Spring 整合了大量著名的第三方框架和类库(如Struts、Hibernate、MyBaits、iBATIS、JPA、Web Service、FreeMaker等),逐渐成为使用最多的JavaEE企业应用开源框架
  • Spring 的一个最大的目的就是使 JavaEE 企业级开发更加容易。同时,Spring 与 MyBatis、Hibernate 等单层框架不同,Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说 Spring 是一个提供了更完善开发环境的一个框架

Spring 的使命:简化 Java 开发

Spring 的特点

方便解耦,简化开发(核心)

通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。

AOP编程的支持(核心)

通过Spring提供的AOP功能,用户可以方便地进行面向切面编程,许多不容易用传统面向对象编程(OOP)实现的功能都可以通过AOP轻松应对。

声明式事务的支持(核心)

通过 Spring 的声明式事务灵活地进行事务管理,提高开发效率和质量。

方便的程序测试

可以用非容器依赖的编程方式进行几乎所有的测试工作

方便集成各种优秀框架

Spring不排斥各种优秀框架,并提供对各种优秀框架(如Struts、Hibernate、Hessian、Quartz等)的支持支持

降低Java EE API的使用难度

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

Spring源码是经典的学习范例

Spring的源码设计合理、结构清晰,处处体现出对Java设计模式的灵活运用以及Java技术的深度挖掘

Spring 体系结构

image-20210925141447094

  • Spring Core:Spring 核心模块实现了 IoC 容器的功能,它将类和类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述,由 IoC 容器负责依赖类之间的创建、拼接、管理、获取等工作
  • Spring AOP :AOP 是继 OOP 之后,对编程设计思想影响最大的技术之一。AOP 是进行横切逻辑编程的思想,它开拓了人们考虑问题的思路。在 AOP 模块里,Spring 提供了满足 AOP Alliance 规范的实现,此外,还整合了 AspectJ 这种 AOP 语言级的框架。在Spring 里实现 AOP 编程拥有众多的选择。
  • Spring DAO:Spring 通过模板化技术对各种数据访问技术进行了薄层的封装,将模式化的代码隐藏起来,使数据访问的程序得到大幅简化。这样,Spring 就建立起了和数据形式及访问技术无关的统一的 DAO 层,借助 AOP 技术,Spring 提供了声明式事务的功能。
  • Spring Web:Web及远程操作:该模块建立在Application Context模块之上,提供了Web应用的各种工具类,如通过Listener或Servlet初始化Spring容器,将Spring容器注册到Web容器中。其次,该模块还提供了多项面向Web的功能,如透明化文件上传、Velocity、FreeMarker、XSLT的支持。此外,Spring可以整合Struts、WebWork、Tapestry Web等MVC框架。

此外,Spring 在远程访问以及 Web Service 上提供了对很多著名框架的整合。由于 Spring 框架的扩展性,特别是随着 Spring 框架影响性的扩大,越来越多框架主动地支持 Spring 框架,让 Spring 框架应用涵盖面越来越宽广。

Spring 生态圈

由于 Spring 框架的扩展性,衍生出大量的基于 Spring 的应用框架

  • Spring Data
  • Spring Session
  • Spring Batch
  • Spring Cloud
  • Spring Fox
  • Spring Security
  • Spring Boot
  • ...

标签:Web,Java,框架,Spring,EJB,简介,AOP
来源: https://www.cnblogs.com/zkatr/p/15349392.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有