| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring学习阶段性总结 -> 正文阅读 |
|
[Java知识库]Spring学习阶段性总结 |
Spring的核心功能之一就是反转控制(IOC),也就是把对成员变量赋值的控制权,从程序员写的代码反转到Spring工厂和配置文件中。 我们之所以需要IOC是因为把创建对象(New)的过程放在了XML配置文件里,所以当我们需要换一个实现子类将会变成很简单(项目不需要重新编译);其次,当他人使用代码时不需要关心对象创建的过程,由第三方的Spring工厂直接提供即可。 IOC底层通过工厂模式来实现,最大的好处之一就是解耦合。而在编程的逻辑中,耦合是不可能被消除的,只能通过转移到更上一层,Spring工厂正是把经过层层抽象得出来的一个核心的逻辑放在了xml配置文件中,从而转移了需要编译的代码中的耦合。而放在xml文档中的耦合部分往往是经常需要修改的代码部分,从而也避免了项目需要重新编译的过程;当其他程序员需要修改代码时,直接看xml文档也会更方便。 工厂模式简单来说就是将实例化某一类对象具体分给对应的工厂,而不是在一个工厂里通过依赖具体的参数来创建。工厂模式的本质就是对获取对象过程的抽象。 1、Spring工厂创建的对象也叫bean或组件。 在获取bean的过程中我们主要通过配置文件中bean的唯一标识 ‘id’ 值来getBean,类似如下代码段中的 ‘person1’ 即为唯一标识,name可以理解为小名,作用类似于?‘id’。
2、我们通过new创建对象时,如需要为对象赋值一般可通过有参构造或者set方法进行赋值。而经过反转控制后,创建对象的权限已经不在我们手中,此时,如果我们需要为对象的成员变量赋值时,我们就需要通过Spring注入来实现。 Spring注入本质上还是通过调用对象的set方法来完成的,所以在使用依赖注入前必须在相应的类中生成对应成员变量的set方法。之后Spring在底层替我们在合适的时机(调用构造方法后)调用对应属性的set方法。 Set注入支持的参数类型大体分为两类,一类是JDK类型的系统成员变量,还有一类时用户自定义类型的成员变量。 JDK类型主要包括:8种基本类型+String类型、数组、Set、List类型、Map类型、Properties类型。 用户自定义类型主要是指,其他对象作为本类的成员变量时,Spring注入也需要相应的定义。 3、对于JDK类型的成员变量,Set注入方法如下所示:
下面通过Spring工厂创建对象,并为该对象的属性进行set注入:
4、对于有用户自定义类型变量属性的对象,创建方法如下:
可以看出UserDao作为UserServiceImpl的成员变量,当Spring工厂为我们创建UserServiceImpl对象后,若对userDao进行注入,必须要为userDAO进行配置,其具体的配置方法如下:
可以看出userDAO也是通过Spring工厂进行实例化的。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/30 14:00:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |