Part1. Spring是什么?
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。——【IBM简介】
Part2. 简单认识IOC
Spring的核心主要就是两个概念IOC和AOP,搞定这两个概念是进一步学习Spring开发的基础,这里先认识IOC。
IOC(Inversion of Control,控制反转),是一种开发思想,而DI(dependency injection,依赖注入)是这个思想在Spring中的具体实现。即我们只是学习DI来使用这个思想即可
平时我们需要使用一个对象时,都是new Object()
,是人为的自己new一个对象。而使用Spring框架的IOC,是我们借助Spring容器通过DI注入达到new Object()
的目的。
简单的说,就是我们把所有的Class都交给了Spring容器,这个容器就是一个存储仓库,当我们需要某个对象的时候,我们就找到这个仓库(Spring容器),问这个仓库要即可。划重点
这个对所需对象的操控的转变由我们人为的自己new变成了问Spring容器要,我们只是需要的时候问它要即可,不需要new的过程(这个过程由Spring容器来做)。这就是IOC控制反转。而问Spring容器要的方式,就是DI依赖注入。
从上述的简单IOC认识,我们可以从应用的角度来认识和学习————假设您现在要使用Spring。
一开始就可以发现的问题有:1. 如何开始使用Spring? 2. 如何创建这个Spring仓库? 3. 如何使用这个Spring仓库来获取到我们想要的对象?围绕着这三个问题来简单学习一下Spring。
Part3. Spring环境搭建
第一个问题,其实就是Spring框架“安装”的问题,这是开发的基础。
创建一个空的maven项目,在pom.xml中导入Spring框架包,例如下面的配置。导入了包之后,Spring框架就搭建好了。
1 | <dependencies> |
到这里,第一个问题就解决了。现在可以开始正常的开发了。就是简单导个包??是的,简单认识。
Part4. Bean和创建Spring容器
在上面我们说到,我们把所有的Class都交给了Spring容器,也就是第二个问题——如何创建这个Spring仓库?
到这里,我们引入Bean的概念。bean是什么?
Bean是什么??
Bean是一套约定或规范。具体的说Bean:
1、所有属性为private
2、提供默认构造方法
3、提供getter和setter
4、实现serializable接口
简单的说:由spring容器管理的对象都是Bean对象,也是普通的java对象。
码两篇文章【javaBean上】、【javaBean下】
这里我们不深究bean,就知道有这东西就行。我们需要做的是在maven文件架构下的resources目录下新建一个Spring XML配置文件(如下,文件名为Beans.xml)。在Spring中编辑一个Bean(如下)
1 |
|
到这里,一个简单的Spring容器就创建好了,第二个问题解决。
Part5. 使用Spring容器
第三个问题,如何通过Spring容器获取到我们想要的对象?这里可以使用理解为“模板”。
在新的类中使用:
1 | //1.创建ApplicationContext容器,给容器指定需要加载的bean配置文件,它会自动从classpath中查找指定的XML配置文件。基于xml的容器有了,想要什么就get。 |
如注释所述,这里已经使用Spring容器获取了对象he
了,其中出现的两个helloWorld
要一一对应。SpringIOC部分大概就是这样子了吧。
Part6. 补充回顾
这里对上述的流程做一个简单的补充和总结。
- Part4
- Bean的使用其实不用像规范那么严格;
- 这里展示的是装配Bean的一种方式——xml显式配置。另外两种方式是1通过注解配置和通过javaconfig配置。每一个方式都需要且值得深入学习。
先讲其他配置的真的过分,虽然其他的最为推荐和常用。
- Part.5
- 初始化一个Spring容器,根据装配Bean的方式的不同而有些许差异。首先对象肯定是容器
ApplicationContext
,差异在于new的对象不同。其他Spring容器的使用方式一致。
- 初始化一个Spring容器,根据装配Bean的方式的不同而有些许差异。首先对象肯定是容器
- 这些都是IOC要好好学习的东西。不同的教程教授的深度和广度不同。
Part7.关于学习Spring的一些tuxue感叹
不得不说,自学,一如既往,真的是太难了。从寻找教学资源、到环境配置、到运行处处error、学到一半发现教程不合适or教程讲到的比较少-继续找教程、缺少足够的demo、触及知识盲区卡顿补漏、……、每一个都是你阻止前进的一大拦路虎。所以,找到一个适合自己的小白教程真的是太难了😭😭。
但是,这个过程经历下来,你也总会有收获,几乎每一步都会有,只是学习进度有一点慢而已,何止一点😡😡。这个收获是多方面的,比如在要学习的领域上,肯定有了进步;比如在踩坑的问题上,可能下一次就不会再踩了;比如你又学到了某些奇奇怪怪的知识;等。
最后,有一个经验,就是所有的这些“二手教程”,真的是二手。不同的作者有不同的水平、不同的理解、不同的侧重点等,所以写出来的教程也就各具特色,各领风骚。但是经过人家消化的东西,要么不够全、不够官方或者误解……。总之,多找几份教程,对比着看,对比着学,虽然慢,虽然难,虽然麻烦,但至少自己能够理解、学习得更全面。可能这就是学习吧,多花时间多努力吧。💪💪提升自学能力。
Why not official document ?? 功力不够,够也不需要什么入门教程了
这篇博文是Spring学习的从输入到输出的转变。是对前面学习的简单总结输出,如果您发现哪里问题or错误,还请指出,3Q🌹🌹,撒花~~~~★,°:.☆( ̄▽ ̄)/$:.°★ 。
相关推荐
参考文献
- 《Spring实战》
- 【狂神说Java】Spring5最新完整教程IDEA版通俗易懂——首推
- 廖雪峰java教程
- Java干货铺子
- Spring Framework官方文档