2.是人就能学会的Spring源码教学-Spring的简单使用

news2024/10/6 5:59:52

是人就能学会的Spring源码教学-Spring的简单使用

  • Spring的最简单入门使用
    • 第一步 创建项目
    • 第二步 配置项目
    • 第三步 启动项目

Spring的最简单入门使用

各位道友且跟我一道来学习Spring的最简单的入门使用,为了方便和简单,我使用了Spring Boot项目,这样可以减少大部分的配置,达到最简单入门的效果。

各位道友若是有Spring或者Spring boot的使用经验,大可跳过这一篇文章。

文章阅读需要耗费10分钟。

第一步 创建项目

Spring官网提供了一个网站用于辅助我们快速地创建Spring Boot的项目。

各位道友请打开网站:https://start.spring.io/

打开的页面如下图所示,图中的选项我已经按照我所需要的进行了设置。

image-20230505223434796

  1. 项目的构建工具,可以选择Maven,也可以选择Gradle,其中Gradle又支持两种脚本语言Groovy和Kotlin。这里选择的是Maven。
  2. 项目的使用的语言。这里选择Java。
  3. Spring Boot的版本,这里选择2.7.11
  4. Maven的group
  5. Maven的artifactId
  6. 项目的名称
  7. 项目的描述信息
  8. 项目中的包路径
  9. 项目打包的形式,这里设置为打成jar包
  10. Java的版本,这里使用Java8
  11. 点击Generate,便会下载创建的项目spring-code-study.zip。

第二步 配置项目

工欲善其事必先利其器,想要学习Spring,那么就得有一个趁手的工具。这里使用的是IDEA。

我们先将第一步下载的项目文件解压缩。解压缩之后,我们可以看到项目文件如下图所示。

image-20230505224246623

我们打开IDEA工具,使用File->Open菜单打开项目。

image-20230505224434055

选中刚才我们解压缩的项目,并点击OK。

image-20230505224618543

若询问你是否信任并打开这个Maven项目,点击Trust Project,表示信任项目。

image-20230505224704358

IDEA打开项目之后,我们可以在右下角就可以看到已经在下载Maven项目的依赖包了。默认是从Maven的中央仓库下载的,速度可能会有些慢。

image-20230505224942087

image-20230505224952458

若各位道友等不及了,或者自己已经有安装Maven,也可以在IDEA上选择本地安装的Maven。

打开菜单File->Settings。

image-20230505225228733

image-20230505225407304

  1. 在搜索框中输入maven
  2. 选择Maven的配置菜单
  3. 选择本地Maven的安装路径
  4. 点击Override,并选择用户自己的Maven配置文件的路径
  5. 点击Override,并选择自己Maven仓库的路径
  6. 点击OK完成配置,此时项目将使用用户本地安装的Maven及仓库。

如下图所示,可以看到Maven的依赖包的下载路径发生了改变,速度直接起飞。这里我假定各位道友本地有安装Maven以及对Maven的依赖下载位置进行了改变。例如可以使用国内的淘宝依赖源。

若各位道友未安装Maven,或不知道如何配置依赖源,那就乖乖地等待下载吧。

image-20230505225446311

依赖下载好了,从Maven窗口中可以看到,项目所需要的依赖已经下载好了。

image-20230505230214824

那么现在,项目的准备工作已经做好了,接下来就是启动我们的项目。

第三步 启动项目

我们打开类SpringCodeStudyApplication,执行main方法,即可运行Spring Boot项目。

image-20230506072824350

通过命令行输出,我们可以看到一个Spring Boot程序被启动,但是很快就结束了,那是因为我们的Spring Boot程序中什么都没有,如果我们在Maven的配置文件pom.xml中增加依赖spring-boot-starter-web,就可以看到Spring Boot项目一直处于运行中了。

image-20230506072951019

到此为此,我们就准备好了一个Spring Boot项目,这个项目将会用于我们后面的Spring的源码分析当中。

有一些初学的道友可能会问我们不是要学Spring的源码,为什么创建的Spring Boot的项目?

那是因为Spring Boot使用的也是Spring,Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题,习惯大于约定。

简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题,习惯大于约定。

说白了,使用Spring Boot可以简化对Spring的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux CentOs 安装 mysql8.0.30

心酸历程。。。 网上的各种教程都有各种bug,安了三个小时终于安好。现在奉上我的宝典秘籍。 第一步,去mysql官网下载,然后将下载的tar包放到linux里面,最好专门创建一个目录来存放,我放到了/usr/local/src的mysql目录下…

基于51单片机的简易电子秤

首先看看题目要求: 1.方案论证 (1)压力传感器的论证与选择 方案一:采用惠更斯电桥,当电阻应变片承受载荷产生变形时,其阻值将发生变化。从而使电桥失去平衡,产生相应的差动信号,但…

Jenkins入门系列之Gitlab账号登录

目录 背景步骤1. 安装插件2. Gitlab 配置3. Jenkins 配置4. 验证 背景 版本 Jenkins Version:Jenkins 2.403Gitlab Version: Gitlab 15.6部署环境:群晖NAS Docker 部署JenkinsGitlab Jenkins 默认使用的是自带的数据库,支持LDAP&#xff0…

【C++】-类和对象之初始化列表(explicit的简单介绍)(下)

💖作者:小树苗渴望变成参天大树 ❤️‍🩹作者宣言:认真写好每一篇博客 💨作者gitee:gitee 💞作者专栏:C语言,数据结构初阶,Linux,C 文章目录 前言 前言 经过前面的好几篇博客,大家应…

SpringSecurity自定义实现手机短信登录

SpringSecurity自定义登录验证-手机验证码登录 其实实现原理上跟账号密码登录一样的 1、自定义短信验证Token 定义一个仅使用手机号验证权限的鉴权Token,SpringSecurity原生的UsernamePasswordAuthenticationToken是使用username和password,如下图 pr…

向量时钟算法

向量时钟不仅同步本进程的时钟值,而且还同步已知的其他进程时钟值 分布式系统中每个进程Pi保存一个本地逻辑时钟向量值VCi,VCi(j)代表进程Pi知道的进程Pj的本地逻辑时钟值 初始化VCi向量为[0,…]进程Pi每发生一次事件,VCi[i]加一进程Pi给进…

应付模块无法关账问题 APP-AR-11332 您必须在关闭此期之前过账其中的所有事务处理

问题描述 AR关账时遇到了这个问题,根本原因是,因为用户录入另一个贷项的发票,做过核销,后来又取消了核销,未创建会计分类,未传送总,不想要这个贷项发票了,前台删除不了,…

经验分享,api 接口设计原则有这几条

结合我多年在 API 行业摸爬滚打的经验,我总结了一下,API 接口设计原则有这几条: 接口设计应该简单易用,易于理解和使用; 接口设计应该支持多种格式,如JSON、XML等; 接口设计应该支持多种请求方…

渲染速度慢,使用云渲染会快多少?

设计师在使用软件制作效果图和动画师在制作动画时,其中有一个比较关键的环节就是渲染成像,渲染的效率主要跟使用的电脑显卡或CPU性能有关,如果性能太低,渲染的速度会很慢,拉长了项目整体的交付周期,云渲染速…

Vite + Vue3 实现前端项目工程化

Vue3 发布至今,周边的生态、技术方案已足够成熟,个人认为新项目是时候切换到 Vite Vue3 了。今天就给大家操作一下这种技术方案实现前端工程化。 1. 初始化项目 通过官方脚手架初始化项目 第一种方式,这是使用vite命令创建,这种…

FM33A048B SPI1/2

概述 芯片的2 个SPI 接口模块SPI1 和SPI2,可配置为主设备或从设备,实现与外部的SPI 通信。 特点: ⚫ 全双工3线串行同步收发 ⚫ 2路独立通道 ⚫ 主从模式 ⚫ 可编程时钟极性和相位 ⚫ 可编程比特速率 ⚫ 从模式最大频率为FAHBCLK/2 ⚫ 传输结…

Hello算法——笔记

文章目录 1 引言算法数据结构算法和数据结构的关系 2 复杂度分析时间复杂度空间复杂度 3 数据结构数据与内存数据结构分类 4 数组与链表 参考资料 1 引言 算法 算法是一组用于解决特定问题或执行特定任务的明确定义的计算步骤或指令集合。算法可以被视为一种解决问题的方法或…

【iOS】--手势操作

文章目录 UIGestureRecognizer 的继承关系: 使用手势步骤UIPanGestureRecognizer(拖动)UIPinchGestureRecognizer(拖动)UIRotationGestureRecognizer(旋转)UITapGestureRecognizer(点按&#xf…

浅谈造纸配电室环境监控系统的应用案例

摘要:智能配电室环境监控系统可实现自动巡检、自动预警等功能,减少人员到现场巡视次数,能及早发现设备的潜在风险,迅速检测故障,节约维护保养时长,为配电生产检修、运行、各业务的标准化、规范化管理提供有…

【Flowable】Flowable候选人和候选人组

在流程定义中在任务结点的 assignee 固定设置任务负责人,在流程定义时将参与者固定设置在.bpmn 文件中,如果临时任务负责人变更则需要修改流程定义,系统可扩展性差。针对这种情况可以给任务设置多个候选人或者候选人组,可以从候选…

IntelliJ IDEA编辑模板变量详解(Edit Template Variables)

函数描述annotated(“annotation qname”)使用驻留在指定位置的注释创建类型符号。 例如,请参见迭代组中的活动模板。anonymousSuper()为Kotlin对象表达式建议一个超类型。arrayVariable()建议当前作用域中适用的所有数组变量。 例如,请参见迭代组中的活…

ACM - DP习题集(word里面的一小部分题集)

DP 一、经典问题1、编辑距离2、扔鸡蛋问题3、整数背包4、最大独立集5、最长公共子序列6、最长公共递增子序列7、最长公共子串(ing)8、最长上升子序列9、最长回文子序列10、最长回文子串(ing)11、最长不重复子字符串(in…

OpenGL教程中矩阵Matrix的介绍

变换 原文Transformations作者JoeyDeVries翻译Django, Krasjet, BLumia校对暂未校对 尽管我们现在已经知道了如何创建一个物体、着色、加入纹理,给它们一些细节的表现,但因为它们都还是静态的物体,仍是不够有趣。我们可以尝试着在每一帧改变…

Python 操作 Excel,如何又快又好?

➤数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。Python处理Excel 常用的系列库有:xlrd、xlwt、xlutils、openpyxl ◈xlrd - 用于读取 Exce…

import一个“太极”库,让Python代码提速100倍!

众所周知,Python的简单和易读性是靠牺牲性能为代价的—— 尤其是在计算密集的情况下,比如多重for循环。 不过现在,大佬胡渊鸣说了: 只需import 一个叫做“Taichi”的库,就可以把代码速度提升100倍! 不信…