spring学习总结(一)_Ioc基础(上)

阅读目录

  • spring概述
  • Ioc基础
  • 使用XML配置方式实现IOC

最近经历了许许多多的事情,学习荒废了很久。自己的目标成了摆设。现在要奋起直追了。最近发现了张果的博客。应该是一个教师。看了他写的spring系列的博客,写的不错。于是本文的内容参考自他的博客,当然都是手打书写。由于我感觉他写的博客篇幅过长。我根据我的习惯进行拆分学习。而且他的文章一系列很清楚。也值得我去学习。自己写博客就零零散散。不是很系统。

spring概述

spring可以做很多事情,它为企业级开发提供了丰富的功能。但是这些功能的底层都依赖于它的两个核心特性,控制反转(IOC)和面向切面(AOP)、本篇文章主要介绍IOC。

现在 springboot 和spring cloud十分火爆,还是有必要看看两者之间的关系的

Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架;Spring Boot使用了约束优于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot来实现,Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。

在这里插入图片描述

Ioc基础

控制反转IOC是一种设计思想,DI(依赖注入)是实现IOC的一种方法。(下面的这张图画的太好了)
在这里插入图片描述

  • 没有IOC的程序中我们使用面向对象编程对象的创建于对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制。
  • 控制反转后将对象的创建转移给第三方。
    IOC是spring框架的核心内容,使用多种方式完美的实现了IOC,可以使用xml配置,也可以使用注解,新版本的spring可以零配置实现IOC。

使用XML配置方式实现IOC

  • 创建maven项目

  • pom文件如下
    在这里插入图片描述
    在这里插入图片描述
    使用无参构造方法创建对象

    新建一个Music类
    在这里插入图片描述

    resources文件夹下新建music.xml
    在这里插入图片描述

    测试类

    在这里插入图片描述
    运行结果
    在这里插入图片描述

使用有参构造方法创建对象

Person

在这里插入图片描述
Student

在这里插入图片描述

student.xml
在这里插入图片描述

测试类
在这里插入图片描述

输出
在这里插入图片描述

通过属性赋值

Animal

在这里插入图片描述
在这里插入图片描述
animal.xml

在这里插入图片描述
测试
在这里插入图片描述

输出结果

在这里插入图片描述
对象引用

Tyre
在这里插入图片描述
在这里插入图片描述

Car

在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述

输出结果
在这里插入图片描述

对象作用域

在大多数情况下,单例bean是很理想的方案。初始化和垃圾回收对象实例所带来的的成本只留给一些小规模任务,在这些任务中,让对象保持无状态并且在应用中反复重用这些对象可能并不合理。在这种情况下,将class声明为单例的bean会被污染,稍后重用的时候会出现意想不到的问题。
-《spring实战》

Spring定义了多种作用域,可以基于这些作用域创建bean,包括:

在这里插入图片描述
1、spring中默认是单例的,我们通过之前的代码演示下

测试

在这里插入图片描述
输出结果:true

这样验证了从容器中取回的对象默认是单例的。

2、设置成Prototype

在这里插入图片描述

测试

在这里插入图片描述
输出结果:false

延迟初始化bean

ApplicationContext实现的默认行为是在启动时将所有的singleton bean 提前进行实例化。这样配置中或者运行环境的错误就会立刻发现。如果你想延迟初始化。可以在xml中进行配置
在这里插入图片描述

测试
在这里插入图片描述

大家自己运行后发现,确实并不是启动后就加载的。

回调方法

Student
在这里插入图片描述

student.xml
在这里插入图片描述

测试方法

在这里插入图片描述
输出结果
在这里插入图片描述

这是在网上看到一个博主写的,觉得不错拉出了。(添加链接描述)博主地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值