创建第一个 Spring 项目(IDEA社区版)
文章目录
- 创建 Spring 项目
- 创建一个普通的 Maven 项目
- 添加 Spring 依赖
- IDEA更换国内源
- 运行第一个 Spring 项目
- 新建启动类
- 存储 Bean 对象
- 将Bean注册到Spring
- 获取并使用 Bean 对象
创建 Spring 项目
创建一个普通的 Maven 项目
首先创建一个普通的 Maven 项目


添加 Spring 依赖
在项⽬的 pom.xml 中添加 Spring 框架的⽀持

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.3.RELEASE</version></dependency>
</dependencies>
注意在xml 文件里添加代码后只是声明了而已,项目并没有加载,需要点击:

刷新加载依赖。
这个重新加载依赖默认是从国外的官网去下载的,因此速度会很慢。
需要更换IDEA 的源为国内源
IDEA更换国内源
第一步打开IDEA的设置里找到 Maven 的设置选项栏

第二步:查看 “User settings file”该栏上的路径里是否存在 “settings.xml”文件,如果没有手动创建 settings.xml 文件并添加以下代码
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf> </mirror></mirrors><profiles></profiles>
</settings>
第三步:添加完 settings.xml 文件后,将该路径下的 repository 文件夹下的所有文件都删掉之后重新下载加载依赖

等待完成即可
运行第一个 Spring 项目
新建启动类
上述说明已经是成功的创建了一个 Spring 项目了,接下来就将项目运行起来。
首先需要在 src下的main下的java里新建一个启动类,这个启动类里包含了main方法

Spring 项目的运行都是从这个main方法开始的
存储 Bean 对象
对于 Spring 而言每一个存到里面的对象都称为 Bean 对象。也就是说我们需要用到什么类都得先写好类之后存到 Spring 中
例如 现在新建了一个学生类

将Bean注册到Spring
那么有了 Bean 之后就得将 Bean 注册到 Spring 中。这就的借助一个 xml文件。
在 src中的main中的resources中新建一个 xml 文件并写入如下代码

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:content="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd">
</beans>
上述的代码和操作是固定不变的,然后在 beans 中加入我们需要注册的 Bean,操作如下

<bean id="student" class="spring.demo.Student"></bean>
- 在bean里面的 id属性就是注册到Spring中该Bean的标识,可任取但是获取Bean的时候需要用到,因此推荐合理合规的取名
- 在bean里面的class属性是注册的这个Bean所在的路径,从java这个包下的子包开始算起
获取并使用 Bean 对象
上述已经将 Bean 注册到 Spring 中了,那么接下来就开始从 Spring 中获取到 Bean 对象去进行使用
首先这个 Bean 已经是在 Spring 中了,所以需要先获取到 Spring 的上下文对象,然后从该对象中获取到 Bean 对象。以下操作均在启动类中进行
获取Bean对象的方法有很多种,本文章不深究方法,仅介绍 Spring 项目的运行
// 获取 Spring 的上下文对象
ApplicationContext context =new ClassPathXmlApplicationContext("spring-config.xml");
这里需要特别注意,传的参数必须与刚刚所建的xml文件名一致,并且需要带上 .xml 后缀名
// 获取 Bean 对象
Student student = (Student) context.getBean("student");
注意:需要获取哪个 Bean 对象,就需要传入在注册 Bean使所设置的id属性的值
// 使用 Bean 对象
student.print("hello world");
获取到Bean 对象后就可以正常使用对象了
运行项目即可

可以看到 Student类的构造函数也被执行了,说明将Student类存入到Spring时,Spring存的就是Student类的实例
相关文章:
创建第一个 Spring 项目(IDEA社区版)
文章目录 创建 Spring 项目创建一个普通的 Maven 项目添加 Spring 依赖IDEA更换国内源 运行第一个 Spring 项目新建启动类存储 Bean 对象将Bean注册到Spring 获取并使用 Bean 对象 创建 Spring 项目 创建一个普通的 Maven 项目 首先创建一个普通的 Maven 项目 添加 Spring 依…...
VUE3动漫影视视频网站模板源码
文章目录 1.视频设计来源1.1 主界面1.2 动漫、电视剧、电影视频界面1.3 播放视频界面1.4 娱乐前线新闻界面1.5 关于我们界面 2.效果和源码2.1 动态效果2.2 源码结构 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/deta…...
Node.js-express
1.了解Ajax 1.1 什么是ajax Ajax的全称是Asynchronous Javascript And XML(异步Js和XML). 通俗的理解:在网页中利用XMLHttpRequest对象和服务器进行数据交互的方式,就是Ajax 1.2 为什么要学习Ajax 之前所学的技术,…...
心理学笔记——我们如何思考-思想、语言和手语
我们如何思考-思想、语言和手语 研究语言的理论:计算理论、认知神经学、进化论 当我们讨论语言时,指的是英语、中文、日语这样的语言系统 所有语言都共享一些深层且复杂的共性,最直观的就是每一种语言都能够有效地表达抽象概念——思想、物…...
Matlab处理excel数据
我们新建个excel文档,用Matlab读取里面的内容,计算和判断里面的计算结果是否正确,并打印到另一个文档当中。 新建文档 新建输入文档,文件名TestExcel 编写脚本 [num,txt] xlsread(TestExcel.xlsx); SNcode num(:,1);%从序号中…...
某大厂关于Linux系统相关面试题
一、Linux系统和Shell 1、写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 在非空行前面加一个"AAA",在行尾加一个"BBB",即将内容为11111的一行改为࿱…...
Markdown(2篇文章学会Markdown
目录 1.文章链接:2.markdown可以用来解决什么问题:小结: 1.文章链接: Markdown(2篇文章学会Markdown第一篇 Markdown(2篇文章学会Markdown第二篇 2.markdown可以用来解决什么问题: 格式化文…...
多路IO复用服务器——select模型和poll模型
文章目录 一、多路IO复用服务器是什么?二、使用原理三、种类四、select模型五、select模型优缺点六、poll模型总结 一、多路IO复用服务器是什么? 服务器要与客户端完成tcp连接,并保持连接维护可用sock。 每个都需要准备一个进程管一个sock&a…...
【书生·浦语大模型实战营】学习笔记目录
【书生浦语大模型实战营01】《书生浦语大模型全链路开源体系》【书生浦语大模型实战营02】《轻松玩转书生浦语大模型趣味Demo》学习笔记【书生浦语大模型实战营03】《基于 InternLM 和 LangChain 搭建你的知识库》学习笔记【书生浦语大模型实战营04】《(4)XTuner 大模型单卡低成…...
APT32F1023X 发送RF433处理
1.硬件电路--CMT2110A 需要注意:发射端MCU写数据的频率要匹配,如果MCU发送中时间最小脉宽是1MS,那么它的发送需要设置为1kbps。 通过华普微USB调试工具PC软件RFPDK_V1.55查看设置是否正确。 2.RF433发送 用到的发送和接收代码来自“无线433发…...
如何做一个合格的产品经理
如何做一个合格的产品经理 如何做一个合格的产品经理 一、了解市场需求 产品经理的核心工作之一是了解市场需求。为了确保产品的成功,你需要密切关注市场动态,了解用户需求,分析竞争对手,并预测未来趋势。通过市场调查、用户访…...
Git 入门精讲
我们为什么要学习git? 就当下的发展而言,只要你从事开发就一定会接触git。作为最强大的分布式版本控制器,git 与 svn 有着本质上的区别。 Git是一种分布式版本控制系统,每个开发者都可以在本地维护完整的代码库,可以离…...
论文笔记(四十二)Diff-DOPE: Differentiable Deep Object Pose Estimation
Diff-DOPE: Differentiable Deep Object Pose Estimation 文章概括摘要I. 介绍II. 相关工作III. DIFF-DOPEIV. 实验结果A. 实施细节和性能B. 准确性C. 机器人-摄像机校准 V. 结论VI. 致谢 文章概括 作者:Jonathan Tremblay, Bowen Wen, Valts Blukis, Balakumar Su…...
设计模式:简单工厂模式
工厂设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。工厂模式属于创建型模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离。 …...
老龄化对投资意味着什么?
1月15日,国务院办公厅印发《关于发展银发经济增进老年人福祉的意见》从4个方面提出26项举措,为我国首个以“银发经济”命名的政策文件。 近期,国信证券分析师王开发布题为《银发经济再思考:老龄化对投资的影响》的报告࿰…...
从公有云对象存储迁移到回私有化 MinIO需要了解的所有信息
我们上一篇文章《如何从 AWS S3 遣返到 MinIO》的反响非常出色 - 我们已经接到了数十个企业的电话,要求我们提供遣返建议。我们已将这些回复汇总到这篇新文章中,其中我们更深入地研究了与遣返相关的成本和节省,以便您更轻松地进行自己的分析。…...
C#颜色拾取器
1,目的: 获取屏幕上任意位置像素的色值。 2,知识点: 热键的注册与注销。 /// <summary>/// 热键注册/// </summary>/// <param name"hWnd">要定义热键的窗口的句柄 </param>/// <param name"id…...
最长公共子串的问题(正常方法和矩阵法,动态规划)
题目: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符…...
Linux实验记录:使用LVM(逻辑卷管理器)
前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: 硬盘分好区或者部署为RAID磁盘阵列…...
[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式
前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…...
AudioSeal Pixel Studio效果展示:ASMR音频高频细节保留下的水印稳定性验证
AudioSeal Pixel Studio效果展示:ASMR音频高频细节保留下的水印稳定性验证 1. 专业级音频水印技术新标杆 AudioSeal Pixel Studio是基于Meta开源的AudioSeal算法构建的音频保护工具,它重新定义了数字水印技术的标准。这款工具能够在保持原始音频质量的…...
TradingAgents-CN:5分钟搭建你的AI投资智囊团,让普通人也能拥有专业金融分析能力
TradingAgents-CN:5分钟搭建你的AI投资智囊团,让普通人也能拥有专业金融分析能力 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-…...
Step3-VL-10B在STM32嵌入式开发中的应用:图像识别实战
Step3-VL-10B在STM32嵌入式开发中的应用:图像识别实战 如何在资源受限的嵌入式设备上实现高质量的图像识别?本文通过Step3-VL-10B模型在STM32上的实战应用,为你揭示轻量级视觉模型的部署奥秘。 1. 为什么选择Step3-VL-10B用于STM32开发 STM3…...
LaTeX algorithm2e避坑指南:为什么你的\tcp*注释后面总多个分号?
LaTeX algorithm2e避坑指南:为什么你的\tcp*注释后面总多个分号? 第一次在LaTeX中用algorithm2e写算法伪代码时,很多人会被\tcp*这个看似简单的注释命令坑到——明明只是想加个注释,结果代码末尾莫名其妙多出个分号,排…...
React Native PagerView入门指南:5分钟快速搭建页面切换组件
React Native PagerView入门指南:5分钟快速搭建页面切换组件 【免费下载链接】react-native-pager-view React Native wrapper for the Android ViewPager and iOS UIPageViewController. 项目地址: https://gitcode.com/gh_mirrors/re/react-native-pager-view …...
LFM2.5-1.2B-Thinking多模态扩展展示:结合视觉模型的图文理解能力
LFM2.5-1.2B-Thinking多模态扩展展示:结合视觉模型的图文理解能力 1. 多模态能力惊艳亮相 LFM2.5-1.2B-Thinking最近在多模态领域展现出了令人惊喜的表现。这个原本专注于文本推理的模型,通过与视觉模型的结合,实现了从纯文本到图文理解的跨…...
5分钟搞定!用DeePseek+PS批量修图(附JSX脚本生成技巧)
5分钟搞定!用DeePseekPS批量修图(附JSX脚本生成技巧) 每次处理上百张产品图时,最头疼的就是重复调整尺寸、统一分辨率这些机械操作?作为电商运营,我经历过无数次深夜加班修图的痛苦,直到发现这个…...
3D Face HRN快速上手:无需代码,Gradio界面三步完成人脸重建
3D Face HRN快速上手:无需代码,Gradio界面三步完成人脸重建 1. 从一张照片到3D人脸,只需三步点击 你是否曾想过,将一张普通的自拍照或证件照,瞬间转化为一张可用于3D建模、游戏角色或虚拟形象的“皮肤地图”…...
3个高效功能让Maccy成为macOS必备剪贴板管理器
3个高效功能让Maccy成为macOS必备剪贴板管理器 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy Maccy是一款专为macOS设计的轻量级剪贴板管理器,能够记录复制历史,让用户轻松…...
M2LOrder模型跨操作系统部署:从Windows到Linux的兼容性实战
M2LOrder模型跨操作系统部署:从Windows到Linux的兼容性实战 你是不是也遇到过这种情况?在Windows电脑上跑得好好的一个AI服务,想迁移到Linux服务器上,结果各种报错,环境依赖、路径问题、权限设置……折腾半天也搞不定…...
