Java进阶——Spring

目录

Spring的定义

什么是容器

什么是IoC 

IoC示例 

Spring的核心功能 

DI的定义 

什么是依赖注入

DI与IoC的区别

Spring的创建和使用

1.创建Spring项目

1.1创建Maven项目

1.2配置Maven国内源 

1.3添加Spring依赖 

1.4重新下载jar

1.5创建启动类 

2.将Bean对象存储到Spring容器中

 2.1创建一个Bean(Bean即对象)

​编辑 2.2 将Bean存储到Spring容器中

3.从Spring中读取Bean

3.1得到Spring对象

​编辑 3.2从Spring中获取Bean

​编辑 3.3使用Bean

 4.ApplicationContext和BeanFactory的区别 

4.1ApplicationContext

4.2 BeanFactory

 5.获取Bean的三种方式


Spring的定义

我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽ 庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级 的应⽤程序开发起来更简单。

用一句话概括:Spring是包含众多工具方法的IoC容器

什么是容器

容器是用来容纳某种物品的(基本)装置。

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

什么是IoC 

IoC = Inversion of Control 翻译成中⽂是“控制反转”的意思,

也就是说 Spring 是⼀个“控制反转”的容器, 

IoC示例 

我们现在构建⼀辆“车”的程序 

1.传统程序开发:new多个对象。当最底层代码改动之后,整个调⽤链上的所有代码都需要修改。

2.控制反转式程序开发:

(1)定义一个Car类,调用framework对象的方法

public class Car {
    private FrameWork frameWork;
    public Car(FrameWork frameWork){
        this.frameWork=frameWork;
    }
    public void init(){
        System.out.println("Car");
        frameWork.init();
    }
}

 (2)定义一个Framework类,调用bottom对象的方法

public class FrameWork {
    private Bottom bottom;
    public FrameWork(Bottom bottom){
        this.bottom=bottom;
    }
    public void init(){
        System.out.println("FrameWork");
        bottom.init();
    }
}

(3)定义一个Bottom类,调用Tire对象的方法

public class Bottom {
    private Tire tire;
    public Bottom(Tire tire){
        this.tire=tire;
    }
    public void init(){
        System.out.println("Bottom");
        tire.init();
    }
}

(4)定义一个Tire类

public class Tire {
    private int size=17;
    private String color="红色";
    public Tire(int size,String color){
        this.size=size;
        this.color=color;
    }
    public void init(){
        System.out.println("size -> "+size+"color -> "+color);
    }
}

 (5)Test类

public class Test {
    public static void main(String[] args) {
        Tire tire=new Tire(12,"黑色");
        Bottom bottom=new Bottom(tire);
        FrameWork frameWork=new FrameWork(bottom);
        Car car=new Car(frameWork);
        car.init();
    }
}

变化:代码经过以上调整,⽆论底层类如何变化,整个调⽤链是不⽤做任何改变的,只需要Tire对象做出改变。这样就完成了代码之间的 解耦,从⽽实现了更加灵活、通⽤的程序设计了

Spring的核心功能 

既然 Spring 是⼀个 IoC(控制反转)容器,重点还在“容器”⼆字上,那么它就具备两个最基础的功 能:

  • 将对象存入容器
  • 从容器中取出对象 

DI的定义 

 DI 是 Dependency Injection 的缩写,翻译成中⽂是“依赖注入”的意思。

什么是依赖注入

所谓依赖注入,就是由 IoC 容器在运行期间,动态地将某种依赖关系注入到对象之中。

DI与IoC的区别

依赖注入(DI)和控制反转(IoC)是从不同的角度的描述的同⼀件事情

就是指通过引入 IoC 容 器,利⽤依赖关系注入的方式,实现对象之间的解耦。

IoC是一种思想,DI是具体的实现技术 

Spring的创建和使用

1.创建Spring项目

1.1创建Maven项目

1.2配置Maven国内源 

先将settings复制到.m2文件夹

(1)当前项目的配置

(2)新项目的配置

1.3添加Spring依赖 

1.4重新下载jar

先删除所有的jar包,然后重新下载所有jar

1.5创建启动类 

2.将Bean对象存储到Spring容器中

 2.1创建一个Bean(Bean即对象)

 2.2 将Bean存储到Spring容器中

3.从Spring中读取Bean

3.1得到Spring对象

 3.2从Spring中获取Bean

 3.3使用Bean

执行结果:

 4.ApplicationContext和BeanFactory的区别 

4.1ApplicationContext

将xml中所有的对象存储到Spring容器中,比较费内存,一次性加载,之后的读取会非常的快。

 ApplicationContext的执行结果:

4.2 BeanFactory

只有调用getBean才会加载对应的Bean,节省内存,调用时才会加载对应的Bean,效率不高

 BeanFactory的执行结果:

 5.获取Bean的三种方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一层楼。 二、资料亮点 基础教程与练习项目:从基础知识讲起,结合实际练习项目,让您轻松上手SSM开发进阶技术与案例分析:针对进阶开发者,提供深入的技术探讨和案例分析,助您深入理解SSM的高级特性。 实战项目与经验分享:通过实际项目实战,让您在实践中掌握SSM的运用,同时分享经验与心得,让您少走弯路。 三、适用人群与场景 无论您是初学者还是资深开发者,无论您是在校学生还是职场人士,本系列资料都将是您学习SSM的得力助手。适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 持续反馈与调整:根据学习进度和反馈,适时调整学习策略,提高学习效果。 五、安全与责任 在使用SSM框架进行开发时,请确保遵循最佳实践和安全准则,以保障系统的稳定性和安全性。在使用提供的资料时,请遵守版权法规,尊重原作者的权益。让我们共同为推动SSM技术的发展而努力!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆的百香果子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值