当前位置: 首页 > news >正文

【Spring 框架】初识 Spring

初识Spring

文章目录

  • 前言
  • 1. 什么是 Spring
  • 2. 什么是 Maven
  • 3. 第一个 SpringBoot 项目
  • 4. 项目讲解
  • 结语


前言

在前面我们一起学习了 JavaSE 的基础知识,随着学习的深入,我们也将逐步介绍 JavaEE 的内容,像 Spring 框架,Mybatis 等等。在本篇博客中,我将会简单介绍 Spring 和 Maven ,并创建一个基于 Spring Boot 框架的十分简单的 Web 应用程序


1. 什么是 Spring

官方网站 —— Spring | Home

SpringSpring 是一个轻量级的 Java 开源框架,核心思想是控制反转(IoC)和面向切面编程(AOP)

在广义上,Spring 指的是 Spring 全家桶,即一个生态体系,它包含了很多模块,如 Spring Framework、Spring Boot、Spring MVC 等,它能整合开源世界众多的第三方框架和类库,因此逐渐成为了使用最多的 Java EE 企业应用开源框架

在狭义上,Spring 又可以单指 Spring Framework 框架,因为 Spring Framework 是 Spring 生态系统的核心,控制反转和面向切面编程的核心思想就是由 Spring Framework 提供的

(在后面的学习中,我们说的 Spring 指的就是 Spring Framework)

Spring Boot

Spring Boot 是 Spring 生态系统中的一个模块,是一个为快速开发 Spring 应用程序而设计的框架。它通过提供一系列预配置的模板和默认设置,可以极大地简化了基于 Spring 的应用程序的配置和部署过程。简单来说, Spring Boot 是对 Spring 的进一步简化和封装~


2. 什么是 Maven

在上面我们提到了 —— “ Spring Boot 可以简化了基于 Spring 的应用程序的配置和部署过程 ”,而这其中,Maven 就发挥了巨大的作用

Maven 的概念

Maven 是一个项目管理和构建自动化工具,它使用一个名为 pom.xml 的文件来管理项目的构建、依赖、报告和文档。Maven 通过定义项目对象模型(Project Object Model, POM)来描述项目构建和依赖管理

在之前的博客 【MySQL】使用 JDBC 连接数据库 中,我们需要将 jar 包导入到项目中才能使用其中的 API,但是现在有了 pom.xml 的文件后,我们只需要把依赖加进去,就可以直接使用了

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version>
</dependency>
  • <dependency>:这是 Maven 依赖配置的开始标签。
  • <groupId>:定义了依赖项所属的组或组织。在这个例子中,mysql 是组 ID,表示这个依赖项是由 MySQL 提供的。
  • <artifactId>:定义了具体的依赖项名称。在这个例子中,mysql-connector-java 是 MySQL JDBC 驱动的 artifact ID。
  • <version>:指定了依赖项的版本。在这个例子中,8.0.33 是 MySQL JDBC 驱动的版本号。
  • </dependency>:这是 Maven 依赖配置结束的标签

3. 第一个 SpringBoot 项目

此处我使用的是 idea 2023.3.2 专业版

第一步:创建 SpringBoot 项目,名字和路径任意

image-20241110152643787

第二步:选择 Spring Web 依赖,这样就不用我们自己手动添加了(此处 SpringBoot 的版本可能会不同,任选一个就好),点击创建

image-20241110152815691

(创建完后可能会加载很久,是正常现象,慢慢等就行)

介绍目录

我们可以把这些暂时用不到的东西给去掉,按 crtl +鼠标一个个选中,按 delete 删除

image-20241110153900297

在目录中,有一些地方需要我们重点关注:

  • src/main/java:我们写的代码就放在这里
  • src/main/resources:放置静态资源或者配置文件,我们通常把html等静态文件放在 /static 目录下
  • src/test/java:测试代码的地方,可以进行单元测试
  • pom.xml:放置 maven 配置文件

第三步:在 src/main/java 目录下,创建 UserController 类,使用注解 @RestController@RequestMapping

package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@RequestMapping("/hello")public String hello() {return "Hello SpringBoot";}
}

第四步:点击右上角绿色启动按钮启动项目,或者选择在 DemoApplication 启动项目

image-20241110154916119

接着观察控制台的日志

image-20241110155010633

第五步:在浏览器中输入 http://127.0.0.1:8080/hello

image-20241110155141885

出现 “Hello SpringBoot”,就代表着项目运行成功!


4. 项目讲解

分析一下 UserController 类:

  • @RestController 注解:表明该类是一个控制器,让 Spring 将其作为 Web 控制器处理,并且会将方法的返回值直接作为 HTTP 响应体返回给客户端
  • @RequestMapping 注解:它可以将 HTTP 请求映射到特定的处理器方法上,在这里我们就是把将 /hello 路径映射到 hello() 方法上

image-20241110172128582

执行流程:当我们在浏览器地址栏输入 http://127.0.0.1:8080/hello 并访问时,Spring Boot 应用程序会启动一个内嵌的Web服务器(默认是 Tomcat),监听8080端口。当请求到达 /hello 路径时,Spring框架会调用 UserController 类中的 hello() 方法。这个方法处理请求并返回一个字符串 "Hello SpringBoot",这个字符串随后被发送回浏览器,浏览器显示为网页内容

以上就是一个非常非常简单的 SpringBoot 项目


结语

今天简单介绍了一下 Spring、Maven,并简单实现了一个 SpringBoot 项目,而关于更加复杂的项目,更多功能的实现,我会在后面的博客中会慢慢道来,敬请期待吧 (●’◡’●)

希望大家能够喜欢本篇博客,有总结不到位的地方还请多多谅解。若有纰漏,希望大佬们能够在私信或评论区指正,博主会及时改正,共同进步

http://www.lryc.cn/news/481387.html

相关文章:

  • 链表(Linkedlist)
  • 信息安全工程师(79)网络安全测评概况
  • 保研考研机试攻略:python笔记(3)
  • 刘卫国MATLAB程序设计与应用课后答案PDF第三版
  • 【鉴权】Web 会话管理:Cookie、Session 和 Token 深度对比
  • ArkTS--应用状态
  • yolov8涨点系列之引入CBAM注意力机制
  • java标准JavaBean类
  • MATLAB界面设计全攻略:从基础入门到高级应用
  • JavaScript API部分知识点
  • 钉钉调试微应用整理2
  • C++初级入门(1)
  • group_concat配置影响程序出bug
  • 将Go项目编译为可执行文件(windows/linux)
  • IMS高压发生器维修高压电源维修XRG100/1000
  • 斯坦福泡茶机器人DexCap源码解析:涵盖收集数据、处理数据、模型训练三大阶段
  • RabbitMQ的DLX(Dead-Letter-Exchange 死信交换机,死信交换器,死信邮箱)(重要)
  • 【STM32F1】——舵机角度控制与TIM定时器
  • 想要成为独立游戏作者 :通关!游戏设计之道 2-1 HUD
  • sql专题 之 三大范式
  • node.js安装和配置教程
  • 定时器输入捕获实验配置
  • 【C/C++】memcpy函数的使用
  • spring-security(两种权限控制方式)
  • 【mongodb】数据库的安装及连接初始化简明手册
  • 【科普】卷积、卷积核、池化、激活函数、全连接分别是什么?有什么用?
  • 距离向量路由选择协议和链路状态路由选择协议介绍
  • 【AI大模型】大型语言模型LLM基础概览:技术原理、发展历程与未来展望
  • ubuntu 22.04 server 安装 和 初始化 LTS
  • 大数据机器学习算法与计算机视觉应用03:数据流