Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)

目录:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第1张图片


Spring概念组成:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第2张图片


IOC操作及底层原理:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第3张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第4张图片


由最初创建对象的方式new -----采用简单工厂模式来生成对象--------IOC底层原理:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第5张图片


下图就是IOC的底层原理

(用到xml文件配置+ 工厂模式+ dom4j解析xml文件+ 反射生成对象)

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第6张图片


IOC入门案例:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第7张图片

SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,给出Spring Framework jar官方直接下载路径:

http://repo.spring.io/libs-release-local/org/springframework/spring/



Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第8张图片



Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第9张图片


Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第10张图片





Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第11张图片

结果:





配置文件没有提示问题:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第12张图片


Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第13张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第14张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第15张图片



Bean实例化的三种方式:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第16张图片


第一种:使用类的无参数构造函数创建

出现问题1: 只有有参构造函数:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第17张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第18张图片


情况2: 加上无参构造函数则正常:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第19张图片




总结:

配置文件中的id---class  采用的即是根据无参构造函数构造对象的方式~也是最常用的~



第二种:使用静态工厂方式创建

工厂---配置文件---测试


Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第20张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第21张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第22张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第23张图片


第三种:使用实例工厂方式创建

创建工厂对象---调用方法--创建类对象



Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第24张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第25张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第26张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第27张图片





Bean 标签常用属性:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第28张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第29张图片

eg.  最后一个举例子:  例如你打开百度 一次登陆百度贴吧之后   再进入百度文库 则已经是登陆状态

        即一次登陆  即可全局访问   后来用redis实现~


默认值是singleton:   测试一下   发现创建的两个对象内存地址相同~

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第30张图片


设定scope值是prototype:   测试一下   发现创建的两个对象内存地址不同~

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第31张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第32张图片





属性注入:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第33张图片


Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第34张图片



1 set方法注入

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第35张图片

XML:



Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第36张图片

测试:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第37张图片


2 有参数构造注入

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第38张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第39张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第40张图片




注入对象类型属性(重点):

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第41张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第42张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第43张图片

   Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第44张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第45张图片

测试:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第46张图片




P名称空间注入:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第47张图片


具体测试:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第48张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第49张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第50张图片





注入复杂类型属性:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第51张图片

实验代码:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第52张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第53张图片

XML文件:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第54张图片

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第55张图片

测试:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第56张图片




IOC(控制反转)和DI(依赖注入)区别:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第57张图片




Spring整合web项目原理:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第58张图片

   Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第59张图片


监听器:

Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第60张图片



Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)_第61张图片


你可能感兴趣的:(测试)