【Spring进阶系列丨第一篇】初识Spring开发

这篇具有很好参考价值的文章主要介绍了【Spring进阶系列丨第一篇】初识Spring开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

小伙伴们大家好,我是陈橘又青,今天起 《Spring进阶系列》 开始更新。本专栏将涵盖Spring框架的核心概念、配置管理、Web开发、AOP、Boot、Security、Data、Integration和Batch等多个主题。通过理论讲解和实际案例的剖析,帮助读者深入理解Spring框架的原理和应用技巧,提升开发人员的技能水平。无论您是初学者还是有一定经验的开发者,都能在本专栏中找到有价值的内容。点此免费订阅,一起探索Spring框架的奥秘,提升您的开发能力!

【Spring进阶系列丨第一篇】初识Spring开发,Spring进阶系列,spring,java,后端,spring boot


一、Spring框架概述

Spring是什么?

Spring 是分层的 Java SE/EE 应用 full-stack【全栈式轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为核心,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。

Spring倡导以 “最少侵入” 的方式来管理应用中的代码,这意味着我们可以随时安装或者卸载 Spring。这里的"最少侵入"可以理解为:我们的项目中所使用的类无需继承框架提供的任何类,这样我们在更换框架时,之前写过的代码几乎可以继续使用。

轻量级:轻量级是相对于重量级而言的,轻量级一般就是非入侵性的、所依赖的东西非常少、资源占用非常少、部署简单等等,其实就是比较容易使用,而重量级正好相反


二、Spring的优势

  • 方便解耦,简化开发

    ​ 通过 Spring 提供的 IoC 容器,可以将==对象间的依赖关系交由 Spring 进行控制==,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

  • AOP 编程的支持

    ​ 通过 Spring 的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。

  • 声明式事务的支持

    ​ 可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。

  • 方便程序的测试

    ​ 可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是麻烦的操作,而是随手可做的事情。

  • 方便集成各种优秀框架

    ​ Spring 可以降低各种框架的使用难度,提供了对各种优秀框架(Struts、Hibernate、SpringMVC、MyBatis等)的直接支持。

  • 降低 JavaEE API 的使用难度

    ​ Spring 对 JavaEE API(如 JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些 API 的使用难度大为降低。

  • Spring 框架中包括了 J2EE 三层的每一层的解决方案(一站式

  • Java 源码是经典学习范例

    ​ Spring 的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对 Java 设计模式灵活运用以及对 Java 技术的高深造诣。它的源代码无意是 Java 技术的最佳实践的范例。


三、Spring能帮助我们做什么

  • Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系
  • Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
  • Spring非常简单的帮我们管理数据库事务
  • Spring提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板来方便数据库访问。
  • Spring 还提供与第三方Web(如Struts1/2、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
  • Spring方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)

四、Spring体系结构

Spring框架的体系结构通过分层的方式,将各种功能模块化,使得开发者可以根据需要选择和使用不同的模块,同时也使得框架本身更具有灵活性和可扩展性。

Spring框架的体系结构采用了分层的理念,根据功能的不同划分成了多个模块。这些模块大体可分为Data Access/Integration(数据访问与集成)WebAOP(面向切面编程)、AspectsInstrumentation(检测)、Messaging(消息处理)Core Container(核心容器)Test

核心容器的主要组件是BeanFactory,它是工厂模式的实现。Spring上下文是一个配置文件,向Spring框架提供上下文信息。此外,Spring框架中还有许多其他模块,例如Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中,而Spring DAO JDBC DAO抽象层提供了有意义的异常层次结构,用于管理异常处理和不同数据库供应商抛出的错误消息。Spring ORM提供了ORM的对象关系工具,其中包括JPA、JDO、Hibernate和MyBatis等。Spring Web模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文,而Spring MVC框架则是一个全功能的构建Web应用程序的MVC实现。

【Spring进阶系列丨第一篇】初识Spring开发,Spring进阶系列,spring,java,后端,spring boot
核心容器有spring-core、spring-beans、spring-context、spring-context-support、spring-experssion(SpEL、spring表达式语言、spring expression language)等。

  • spring-core:提供了框架的基本组成部分,包括IoC和依赖注入。
  • spring-beans:提供BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把编码和依赖从实际编码逻辑中解耦。
  • context:建立在core和beans模块基础上,它是一种类似JNDI的注册方式访问对象。Context继承自Bean,并添加了国际化事件传播、资源加载和透明的创建上下文等功能。Context模块也支持javaee功能。applicationcontext接口是context模块的焦点。spring-context-support提供了第三方集成到spring上下文的支持,如:缓存(Ehcache、Jcache、Guava)、邮件(javamail)、调度(commonJ、quartz)、模版引擎(freemarker、JasperReports)等
  • spring-expression:提供了强大的表达式语言,用于在运行时查询和操作图,它是JSP2.1中规定的统一表达式语言的扩展,支持get和set属性值、方法调用、访问数组集合及索引内容、逻辑算术运算、命名变量、通过名字对Spring IoC容器进行检索,支持列表的投影、选择及聚合等。

它们的依赖关系如下:

【Spring进阶系列丨第一篇】初识Spring开发,Spring进阶系列,spring,java,后端,spring boot

五、Spring的官网

Spring官网,开发者们可以获取到以下信息:

  • 各种关于Spring框架的详细介绍和文档。

包括各种Spring项目的信息(如Spring Boot、Spring、Spring Cloud等),以及如何搭建REST风格的web service和使用JPA等。

  • Spring各个版本的下载地址,包括jar包的链接和说明。
  • Spring的培训及证书认证信息。

此外,在首页上还会展示一些当前Spring比较流行的技术,帮助用户学习和使用Spring框架。

【Spring进阶系列丨第一篇】初识Spring开发,Spring进阶系列,spring,java,后端,spring boot


六、Spring的使命/理念

Spring的使命是解决企业级应用开发的复杂性,简化Java开发。它的设计目标是提供一个一站式轻量级应用开发平台。

Spring的设计理念是在JavaEE开发中,支持POJO和JavaBean开发方式,使应用面向接口开发,充分支持OO(面向对象)设计方法。它通过IOC容器实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给IOC容器,实现解耦。

这些理念和目标使Spring成为Java开发中重要的框架之一,帮助开发者提高开发效率,降低维护成本,提高代码的可维护性和可重用性。

总结:简化Java应用程序开发


《Spring进阶系列》 专栏欢迎订阅,我们下篇见~

【Spring进阶系列丨第一篇】初识Spring开发,Spring进阶系列,spring,java,后端,spring boot文章来源地址https://www.toymoban.com/news/detail-752156.html

到了这里,关于【Spring进阶系列丨第一篇】初识Spring开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring进阶系列丨第八篇】Spring整合junit & 面向切面编程(AOP)详解

    ​ @ContextConfiguration注解需要注意的细节是: classes:指定的是主配置类的字节码 locations:指定xml文件的位置 ​ 首先来看一个问题,假如我现在有一个UserServiceImpl用户业务类,其中呢,有一个保存用户的方法,即: ​ 现在的需求是:我要在保存用户之前新增事务的功能,你

    2024年04月13日
    浏览(58)
  • 【Spring进阶系列丨第三篇】Spring核心技术之 IoC 与 DI 实战案例

    在上一篇文章中,我们学习了IoC与DI的相关概念与原理,现在让我们 以HelloWorld为例,编写一个程序,让创建对象的工作由Spring帮助我们创建。 一同感受一下Spring框架带给我们开发的便捷性。 这种做法是以前最常用的做法,HelloWorld这个类的对象是我们程序员自己去创建并为属

    2024年02月05日
    浏览(51)
  • 【Spring进阶系列丨第十篇】基于注解的面向切面编程(AOP)详解

    ​ 注意,该类的两个细节: a、@Component注解向容器中注册一个Bean。 b、@Aspect注解表示这个是一个切面类。 c、@Before注解表示的是这个是前置增强/前置通知。 ​ 注意:对于业务Bean,我们也需要通过@Service注解来向容器中注册。 ​ 问题:我们看到对于切面类中定义的通知,有

    2024年04月23日
    浏览(50)
  • 【Spring进阶系列丨第九篇】基于XML的面向切面编程(AOP)详解

    1.1.1、beans.xml中添加aop的约束 1.1.2、定义Bean ​ 问题:我们上面的案例经过测试发现确实在调用业务方法之前增加了日志功能,但是问题是仅仅能针对某一个业务方法进行增强,而我们的业务方法又有可能有很多,所以显然一个一个的去配置很麻烦,如何更加灵活的去配置呢

    2024年04月18日
    浏览(55)
  • 【Spring进阶系列丨第二篇】Spring中的两大核心技术IoC(控制反转)与DI(依赖注入)

    我们都知道Spring 框架主要的优势是在 简化开发 和 框架整合 上,至于如何实现就是我们要学习Spring 框架的主要内容,今天我们就来一起学习Spring中的两大核心技术IoC(控制反转)与DI(依赖注入)。 以经典的三层架构MVC作为案例,以前我们都是这么干的,看如下代码: 按照

    2024年02月05日
    浏览(70)
  • Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)

    开篇: 欢迎来到 Spring 5 学习系列!在这个系列中,我们将深入研究 Spring 框架的最新版本,揭示其在现代Java开发中的精髓。无论你是初学者还是有经验的开发者,本系列都旨在为你提供深刻的理解和实用的知识,让你在构建强大、可维护和高效的应用程序方面更上一层楼。

    2024年01月22日
    浏览(77)
  • Spring原码学习第一篇:Spring概述

    1、Spring获取对象的过程 2、Spring源码概述图: 2、一些重要的接口 BeanDefinition中实现的方法,把xml中定义的对象封装为一个对象,方便后面处理 4、BeandefinitionReader BeandefinitionReader 作为一个抽象层来处理配置文件,定义规范,方面扩展,如果再有其他格式的配置文件的话,直接

    2024年02月13日
    浏览(91)
  • Spring MVC程序开发(JavaEE进阶系列3)

    目录 前言: 1.什么是Spring MVC 1.1MVC的定义 1.2MVC和Spring MVC的关系 1.3为什么要学习Spring MVC 2.Spring MVC项目的创建 3.Spring MVC框架的使用 3.1连接的功能 3.1.1@RequestMapping 3.1.2@GetMapping  3.1.3@PostMapping 3.2获取参数的功能 3.2.1获取单个参数 3.2.2获取对象 3.2.3上传文件 3.2.4获取Cookie 3.2

    2024年02月07日
    浏览(47)
  • spring---第一篇

    1、配置文件配置包扫描路径 2、递归包扫描获取.class文件 3、反射、确定需要交给IOC管理的类 4、对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些注解,分别表示访问控制层、业务服务层、数据持久层、依赖注入注解、获取配置文件注 解 从配置文件

    2024年02月09日
    浏览(45)
  • Spring原码学习第一篇:Spring源码概述

    1、Spring获取对象的过程 2、Spring源码概述图: 2、一些重要的接口 BeanDefinition中实现的方法,把xml中定义的对象封装为一个对象,方便后面处理 4、BeandefinitionReader BeandefinitionReader 作为一个抽象层来处理配置文件,定义规范,方面扩展,如果再有其他格式的配置文件的话,直接

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包