首页 > 其他分享 >Spring基础

Spring基础

时间:2024-10-17 23:21:13浏览次数:9  
标签:Java spring Spring 基础 MVC 模块 提供

一、什么是 Spring 框架?

  Spring是一款开源的轻量级Java开发框架,旨在提高开发人员的开发效率以及系统的可维护性。
  我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发,比如说 Spring 支持 IoC(Inversion of Control:控制反转) 和 AOP(Aspect-Oriented Programming:面向切面编程)、可以很方便地对数据库进行访问、可以很方便地集成第三方组件(电子邮件,任务,调度,缓存等等)、对单元测试支持比较好、支持 RESTful Java 应用程序的开发。
RESTful Java 说明:RESTful(Representational State  Transfer)是一种设计风格,用于构建轻量级、可扩展的网络应用程序接口(API)。在Java开发中,使用RESTful风格设计和实现API可以提升应用程序的灵活性、可维护性和可扩展性。本文将深入探讨RESTful  API的设计原则、实现技巧以及在Java项目中的应用实践。

Spring 提供的核心功能主要是 IoC 和 AOP。

二、Spring包含的模块有哪些?

2.1 Core Container

  Spring框架的核心模块,主要提供IOC依赖注入功能的支持。Spring 其他所有的功能基本都需要依赖于该模块。

 

  • spring-core:Spring 框架基本的核心工具类。
  • spring-beans:提供对 bean 的创建、配置和管理等功能的支持。
  • spring-context:提供对国际化、事件传播、资源加载等功能的支持。
  • spring-expression:提供对表达式语言(Spring Expression Language) SpEL 的支持,只依赖于 core 模块,不依赖于其他模块,可以单独使用。

 

2.2  AOP

 

  • spring-aspects:该模块为与 AspectJ 的集成提供支持。
  • spring-aop:提供了面向切面的编程实现。
  • spring-instrument:提供了为 JVM 添加代理(agent)的功能。 具体来讲,它为 Tomcat 提供了一个织入代理,能够为 Tomcat 传递类文 件,就像这些文件是被类加载器加载的一样。没有理解也没关系,这个模块的使用场景非常有限。

 

2.3  Data Access/Integration

 

  • spring-jdbc:提供了对数据库访问的抽象 JDBC。不同的数据库都有自己独立的 API 用于操作数据库,而 Java 程序只需要和 JDBC API 交互,这样就屏蔽了数据库的影响。
  • spring-tx:提供对事务的支持。
  • spring-orm:提供对 Hibernate、JPA、iBatis 等 ORM 框架的支持。
  • spring-oxm:提供一个抽象层支撑 OXM(Object-to-XML-Mapping),例如:JAXB、Castor、XMLBeans、JiBX 和 XStream 等。
  • spring-jms : 消息服务。自 Spring Framework 4.1 以后,它还提供了对 spring-messaging 模块的继承。

 

2.4  Spring Web
  • spring-web:对 Web 功能的实现提供一些最基础的支持。
  • spring-webmvc:提供对 Spring MVC 的实现。
  • spring-websocket:提供了对 WebSocket 的支持,WebSocket 可以让客户端和服务端进行双向通信。
  • spring-webflux:提供对 WebFlux 的支持。WebFlux 是 Spring Framework 5.0 中引入的新的响应式框架。与 Spring MVC 不同,它不需要 Servlet API,是完全异步。

 

 

Spring 团队提倡测试驱动开发(TDD)。有了控制反转 (IoC)的帮助,单元测试和集成测试变得更简单。

 

Spring 的测试模块对 JUnit(单元测试框架)、TestNG(类似 JUnit)、Mockito(主要用来 Mock 对象)、PowerMock(解决 Mockito 的问题比如无法模拟 final, static, private 方法)等等常用的测试框架支持的都比较好。

 

等等!

 

Spring,Spring MVC,Spring Boot 之间什么关系?

Spring 包含了多个功能模块(上面刚刚提到过),其中最重要的是 Spring-Core(主要提供 IoC 依赖注入功能的支持) 模块, Spring 中的其他模块(比如 Spring MVC)的功能实现基本都需要依赖于该模块。

Spring MVC 是 Spring 中的一个很重要的模块,主要赋予 Spring 快速构建 MVC 架构的 Web 程序的能力。MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。

使用 Spring 进行开发各种配置过于麻烦比如开启某些 Spring 特性时,需要用 XML 或 Java 进行显式配置。于是,Spring Boot 诞生了!

Spring 旨在简化 J2EE 企业应用程序开发。Spring Boot 旨在简化 Spring 开发(减少配置文件,开箱即用!)。

Spring Boot 只是简化了配置,如果你需要构建 MVC 架构的 Web 程序,你还是需要使用 Spring MVC 作为 MVC 框架,只是说 Spring Boot 帮你简化了 Spring MVC 的很多配置,真正做到开箱即用!

 

 

 

标签:Java,spring,Spring,基础,MVC,模块,提供
From: https://www.cnblogs.com/tcl-study/p/18473306

相关文章

  • Python基础知识总结
    变量#变量定义name="name"age=18height=1.75#多个变量赋值a=b=c=1print(a,b,c)字符串#字符串定义及输出str1="hello"str2='world'print(str1,str2)#字符串格式化输出print("name:%s,age:%d,height:%.2f"%(name,age,height))#字符串拼接str3=str1+str2pri......
  • (八千字心得笔记)零基础C语言入门第一课——初识C语言
    这一课主要是让大家初步了解C语言,了解我们的开发环境,main函数,库函数,关键字,字符和字符串等内容的介绍,后面会一一讲解文章目录一.C语言是什么1.1C语言的历史二.开发环境编译型语言和解释型语言2.1编译和链接2.2编译器的选择2.2.1VS项目和源文件、头文件介绍2.2.2......
  • 学习groovy基础
    简介Groovy是一种JVM语言,它可以编译与Java相同的字节码,然后将字节码文件交给JVM去执行,并且可以与Java无缝地互操作,Groovy可以透明地与Java库和代码交互,可以使用Java所有的库。Groovy也可以直接将源文件解释执行它还极大地清理了Java中许多冗长的代码格式如果......
  • springboot+vue基于工程教育认证的计算机课程管理平台【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着工程教育认证在全球范围内的推广与实施,高等教育机构面临着提升教育质量、确保学生能力培养与行业需求紧密对接的挑战。计算机课程作为工程教育的重要组成部分,其教学质量和效果直接影响到学生未来的职业发展。然而,传统的教学管理模......
  • springboot+vue基于Java的高校学生请假系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,高校教育管理方式正逐步向智能化、便捷化转变。传统的学生请假流程,往往需要学生填写纸质申请表,经过辅导员、院系多级审批,过程繁琐且效率低下。此外,纸质记录也不利于信息的长期保存与查询,易导致信息丢失或管理混......
  • springboot+vue机械零件仓储管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着制造业的快速发展,机械零件的种类和数量日益增多,对机械零件的仓储管理提出了更高要求。传统的仓储管理方式存在诸多不足,如人工记录易出错、库存信息更新不及时、查找零件效率低下等问题,这些问题不仅增加了企业的运营成本,还影响了生......
  • springboot+vue基于VUE电脑城摊位出租系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和电子商务的普及,传统电脑城的管理方式正面临着前所未有的挑战与机遇。传统的摊位出租流程繁琐、效率低下,且信息透明度不足,导致出租方与承租方之间的信息不对称,影响了市场的公平性和效率。为了应对这些挑战,开发......
  • C/C++语言基础--C++四大类型转换讲解
    本专栏目的更新C/C++的基础语法,包括C++的一些新特性前言通过前面几节课,我们学习了抽象、封装、继承、多态、异常等概念,这一篇我们将继续学习C++的类型转换,和C语言还有很大区别的;在本节课最后,也简要说了一下在计算机视角上看类型是什么样子的;C语言后面也会继续更新知识点,......
  • springmv的过滤器和拦截器的区别是什么
    一个请求进来的时候,先交给web服务器提供的过滤器,例如springboot项目,提供的服务器也就是内置的tomcat,过滤器处理完成以后,然后会来到servlet,有一个dispatcherServlet会调用拦截器,再由dispatcherServlet分发给对应的Controller,处理完请求后,会原路返回,再回到拦截器,再回到过滤器,最终响......
  • 2024-2025-1 20241401 《计算机基础与程序设计》 第四周学习总结
    班级链接2024计算机基础与程序设计作业要求作业要求作业目标①门电路②组合电路,逻辑电路③冯诺依曼结构④CPU,内存,IO管理⑤嵌入式系统,并行结构⑥物理安全教材学习内容总结《计算机科学概论》第四章、第五章门:非(NOT)门、与(AND)门、或(OR)门、异或(XOR)......