Spring(一):Spring 的创建和使用

目录

Spring 是什么?

什么是容器?

什么是 IoC?

什么是 IoC?

IoC的优点是啥呢?

理解 IoC

DI 概念说明

Spring 的创建

创建 Spring 项目

1. 创建⼀个普通 Maven 项⽬。

2. 添加 Spring 框架⽀持(spring-context、spring-beans)。

3. 添加启动类

将 bean 对象存储到 Spring(IoC)中

 将 bean 对象从 Spring(IoC)中 取出


在开始Spring的创建和使用之前先来看看Spring的基本概念

Spring 是什么?

我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。
⽤⼀句话概括 Spring:Spring 是包含了众多⼯具⽅法的 IoC 容器。                                                  这里的众多工具体现在哪呢?这个慢慢学Spring都会介绍到。  
那问题来了,什么是容器?什么是 IoC 容器?

什么是容器?

容器就是用来装某个物体的,我们之前就有学过容器:

  • List/Map -> 数据存储容器
  • Tomcat -> Web 容器

什么是 IoC?

Spring 也是⼀个容器,Spring 是什么容器呢?Spring 是⼀个 IoC 容器

什么是 IoC?

IoC = Inversion of Control 翻译成中⽂是“控制反转”的意思,也就是说 Spring 是⼀个“控制反转”的容器,怎么理解这句话呢?

控制(权)反转,指的是:对象的生命周期的控制权(原本属于  程序员/代码片段  控制),现在交给了Spring容器控制或者是IoC 容器控制

IoC的优点是啥呢?

答:可以实现解耦合(松耦合)

我们具体来举个栗子,具体的看看IoC的实现。

我们就创建一个普通的类:

我们的需求是这样的:

  • 我们创建一辆车依赖了车的车身;
  • 这个框架又依赖着车的底盘
  • 这个底盘又依赖着车的轮胎

代码如下:

 车身依赖底盘

 底盘依赖轮胎

轮胎本身自带一个size 属性:

ok,旧的需求写到这里,我们客户现在需要自己规定轮胎大小,而不是每次都默认大小,那么从最底层 Tire 开始要进行传参 int size 

此时就开始体现了耦合性太高,假设我们又有一个需求,需要换车身颜色呢?又需要从最底层开始向上修改到最高层所有的参数。

那么如果是用IoC 容器就很好的解决了这个问题。

这就很好的进行了  解耦合。

对比总结:

在传统的代码中对象创建顺序是:Car -> Framework -> Bottom -> Tire
改进之后解耦的代码的对象创建顺序是:Tire -> Bottom -> Framework -> Car

理解 IoC

回到我们的主题 Spring,本⽂刚开始咱们就讲:Spring 是包含了多个⼯具⽅法的 IoC 容器,这就是对 Spring 最核⼼的总结。“集成多个⼯具⽅法”这事咱们以后慢慢再讲,那如何理解“Spring 是⼀个 IoC 容器”这句话呢?
既然 Spring 是⼀个 IoC(控制反转)容器,重点还在“容器”⼆字上,那么它就具备两个最基础的功
能:

  1. 将对象存⼊到容器;
  2. 从容器中取出
最低0.47元/天 解锁文章
spring security原理和机制 | Spring Boot 35
学Java,找哪吒
06-25 5万+
一、SpringSecurity 框架简介 Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的 成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方 案。 正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控 制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权 (Authorization)两个部分,这两点也是 Spring
Springboot:Spring Assistant创建项目框架
zhengzaifeidelushang的博客
07-20 2592
Springboot:Spring Assistant创建项目框架 Springboot自动配置项目流程步骤如下所示: 第一步: 第二步: 第三步: 第四步: 第五步: 第六步:完整的目录结构
新建一个spring项目
qq_43560721的博客
03-22 398
项目结构: 1>新建项目后首先导包 2>新建service接口 UserService.java package cn.xxs.service; public interface UserService { public void print(); } 3>service接口的实现 UserServiceImpl.java package cn....
搭建简单的spring项目
baozi121的博客
09-24 508
搭建简单的Spring框架
spring全面详解-最全最详细的spring基本认识和入门使用
最新发布
是程序喵呀
08-20 5097
Spring是一款主流的Java EE 轻量级开源框架,目的是用于简化Java企业级引用的开发难度和开发周期。从简单性、可测试性和松耦合度的角度而言,任何Java应用都可以从Spring中受益。Spring框架提供自己提供功能外,还提供整合其他技术和框架的能力。​ Spring自诞生以来备受青睐,一直被广大开发人员作为Java企业级应用程序开发的首选。时至今日,Spring俨然成为了Java EE的代名词,成为了构建Java EE 应用的事实标准。
Spring入门(一):创建Spring项目
LIU18612105538的博客
02-28 325
本篇博客作为Spring入门系列的第一篇博客,不会讲解什么是Spring以及Spring的发展史这些太理论的东西,主要讲解下如何使用IntelliJ IDEA创建Spring项目以及通过一个示例了解下Spring的简单使用。 1. 创建Spring项目 首先,按照下图所示打开“新建项目”弹出框: 然后在左侧选择项目类型Spring: 如果这里忘记了选择"Create empty sp...
spring基础】如何搭建一个spring项目
tutu6663的博客
03-16 3077
spring基础】如何搭建一个spring项目
创建spring项目
lucky_1314520的博客
07-22 1035
1.操作容器之前,先要有容器,所以先要得到容器。2.存对象1.创建Bean(普通类)。2.将Bean注册(配置)到中。3.取对象1.得到Spring上下文,并读取到Spring的配置文件。2.获取某一个Bean对象。3.使用Bean对象。操作流程如下图所示:
Spring教程-创建一个spring
xlecho的博客
05-08 385
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 按照我们的开发学习惯例,我们使用新东西之前,先来一个hello word试一试,这里讲解使用idea创建一个spring项目 1、选择创建项目 2、点击创建Spring的选项 3、创建之后会自动下载jar包,不要动他 4、完成之后得到如下结构的项目 验证一...
Spring】——Spring创建使用
冷兮雪的博客
06-03 4966
上期我们讲解了Spring是什么及Spring的核心特点,其中重点讲解了控制反转(IoC)和依赖注入(DI),下面我们通过示例代码来去更深刻了解这其中的含义。
Spring Boot入门(一):使用IDEA创建Spring Boot项目使用yaml配置文件
Spring boot
10-10 2529
1.创建Spring Boot项目 说明:我这里使用的开发软件是IDEA。 首先在启动页选择"Create New Project" 然后左侧选中“Spring Initializr”,右侧选择好SDK的版本,然后点击“Next” 这里首先会看到默认的项目信息 按照自己的需要修改Group(可理解为组织,一般为域名反过来,如zwwhnly.com,这里就是com.zwwhnly)和Artif...
Spring(三)如何创建一个spring项目
03-15
NULL 博文链接:https://wlh269.iteye.com/blog/322607
手把手教你搭建你的第 1 个Spring 项目
Z99263的博客
06-04 1235
博主是一名程序猿,平时会积累自己的学习经验,java相关技术、SSM、spring全家桶,微服务、MySQL、集群、分布式、VUE等相关知识,面试相关知识。ClassPathXmlApplicationContext是实现ApplicationContext接口的类,扫描配置文件(名字一定要一模一样),获取Spring容器的Bean对象。在初始化容器时就会实例化所有的 Bean,提前进行依赖注入、初始化和单例模式的创建等操作,因此启动时间相对较长,但对于用户来说,获取 Bean 时速度较快。
Spring项目创建使用
moteandsunlight的博客
05-05 2459
联系:从继承关系而言,ApplicationContext和BeanFactory都是Spring容器的两个顶级的接口,并且ApplicationContext是继承于BeanFactory的;从功能角度而言,ApplicationContext和BeanFactory都有获取Spring上下文对象的功能。区别:从功能角度而言,前者除了继承后者所有功能外还具有独特特性,添加了对国际化、资源访问及事件传播等方面的支持;
如何创建Spring项目
qq_44769557的博客
07-06 5852
Intellij IDEA开发。 新建Spring 项目 1、创建Spring的maven项目 2、创建maven 3、起一个项目的名字 4.finish,完成。 配置依赖 1.导入spring的jar包,在pom.xml中添加下面的代码,点击Load一下maven就会自动导入了 <dependencies> <dependency> <groupId>org.springframework</groupId>
创建并运行一个 Spring项目
lfm1010123的博客
09-30 5853
Spring 项目的两种实现方式
Spring项目创建使用
zzbzxzzdf的博客
07-07 1606
1. Spring一个包含众多工具方法的 loC (控制反转)容器,属于第三方库,所以我们在使用 Spring 的时候需要为项目注入相关依赖,既然是容器就有两个最基本的功能,存储和取出。2. 存储 Bean 对象创建 Bean 对象 (就是普通类的实例化对象)将Bean 对象注册(配置)到:Spring 的配置文件 【.xml 文件】​文件名是自定义的,但是尽量保持规范,在从 Spring 中取出 Bean 对象的时需要用到配置文件名。如何注入请看上文解析……3. 获取 Bean 对象。
idea新建一个Spring项目(最基础)
热门推荐
漫时光的博客
09-11 1万+
首先,笼统介绍一下,什么是spring 1、Spring 的主要作用就是为代码“解耦”,降低代码间的耦合度。 根据功能的不同,可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类。它们各自具有鲜明的特点:主业务代码间逻辑联系紧密,有具体的专业业务应用场景,复用性相对较低;系统级业务相对功能独立,没有具体的专业业务应用场景,主要是为主业务提供系统级服务,如用户、权限管理,日志记录、安全管理、事...
spring项目创建
xhhhx_的博客
07-01 3258
spring项目创建、bean对象的简单创建、获取及使用;2种方法获取spring配置文件中的bean对象以及二者的区别;BeanFactory与ApplicationContext
SpringBoot入门教程:使用Spring Initializr创建项目
"这篇教程详细介绍了如何使用Spring Initializr创建一个Spring Boot项目,包括从新建Project到编写Controller,再到启动和验证应用的过程。" 在Spring Boot的开发中,Spring Initializr是一个非常实用的工具,它...
写文章

热门文章

  • 多态(polymorphic) 18933
  • 后端(三):后端实战(表白墙的设计) 5745
  • 后端(四):博客系统项目 5686
  • 后端(二):Servlet 5559
  • 多线程(十):总结 5261

分类专栏

  • Redis 3篇
  • 消息队列 6篇
  • Java框架 5篇
  • JavaEE 26篇
  • 后端 5篇
  • 数据结构高阶 1篇
  • 测试 3篇
  • MySQL 4篇
  • 数据结构 16篇
  • JavaSE 22篇
  • c语言进阶 17篇
  • c语言初级 7篇
  • 初识C 3篇

最新评论

  • 多态(polymorphic)

    Luhe: 如饮佳酿,甚欢😀

  • 后端(四):博客系统项目

    我可是ikun啊: https://gitee.com/code-cloud-of-wjm/my-project/tree/master/myblog-sm

  • 后端(四):博客系统项目

    我可是ikun啊: 好的,晚一点再发给你

  • 后端(四):博客系统项目

    会跑的豆子: 码云链接失效了 可以再发一次吗

  • 数据结构进阶(一):AVL树

    北 海: avl树写的很详细

最新文章

  • Redis(三):常见数据类型:List、Set、Zset
  • Redis(二):常见数据类型:String 和 哈希
  • Redis(一):初始Redis
2023年57篇
2022年51篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家平凉玻璃钢动物雕塑定做鼓楼春季商场美陈重庆玻璃钢雕塑公司衡阳玻璃钢雕塑产品玻璃钢雕塑工艺说明济源玻璃钢泡沫雕塑厂家杭州商场美陈制造黄石玻璃钢雕塑熊猫公司清远玻璃钢公仔雕塑定制无锡玻璃钢卡通雕塑揭阳工艺玻璃钢卡通雕塑梅州玻璃钢雕塑需要几天南昌人物玻璃钢雕塑设计制作西安黑龙江玻璃钢雕塑江苏创意玻璃钢雕塑哪家便宜天津大型商场创意商业美陈作品古典商场美陈图片浙江大型商场创意商业美陈风格楚雄玻璃钢伟人像雕塑江苏周年庆典商场美陈售价滨州玻璃钢花盆批发价格人物玻璃钢雕塑厂商出售贵州室内雕塑玻璃钢江苏动物玻璃钢雕塑设计松鼠玻璃钢雕塑摆件云南水果玻璃钢雕塑优势北京卡通玻璃钢雕塑定做商场大型气球美陈鹤壁春节商场美陈牛吉祥物雕塑广州海珠商场美陈香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化