| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> SpringIOC中复杂属性如何“巧妙”赋值? -> 正文阅读 |
|
[Java知识库]SpringIOC中复杂属性如何“巧妙”赋值? |
目录 一、写在前面Hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 上一期和大家在《SSM编程日记》中和大家分享了SSM框架的基本介绍和springIOC的基本入门,所以今天继续来和大家讲一下对于bean中存在的复杂属性,如一个新的bean、list、map、Properties等在xml配置文件中应该如何对其进行赋值?以及级联赋值和IOC中属性类的继承使用。 二、IOC中复杂属性的赋值我们先在这里创建一个内含多类型属性的bean对象person,里面具有如下属性,并对其添加getXxx()和setXxx()方法:
下面我们将依次讲解如何给赋值属性赋值。 1、为类属性赋值以上面的person类为例,我们为其中的Car属性进行赋值,我们知道car在这里也是一个javaBean,其中也包含很多属性,那么应该如何对其进行赋值呢? 这里介绍两种方法: (1)、引用赋值我们可以先在IOC中对一个Car对象赋好值,然后在对person对象中的car属性进行赋值时,直接使用ref进行引用即可。 如下在xml配置文件中:
(2)、引用新的类对象赋值除了上面的引用方法以外,我们还可以直接在对person赋值时,对其中的car对象进行赋值,也就是直接在person的<bean></bean>标签中给car对象赋值即可, 使用该方法时需要在对car属性赋值的<property></porperty>标签内部写一个新的<bean></bean>标签,在其中对car对象进行赋值。 实例如下:
我们来测试一下,获取到IOC中的person对象,读取其中的car属性
2、为List属性赋值为list属性进行赋值时需要用到list标签,在<list></list>中写入要存放到list中的元素值。 这里的<list></list>标签就相当于new arraylist<Class>(),在其中写入元素值。具体使用看代码:
在<list></list>标签中还包含很多其他的标签可以使用,因为我们例子中的list中存放的是book类,所以我们这里只是在其中存放了两个book对象。 其中还有很多标签如<value></value>、<map></map>等,对于存放String的list我们就可以直接<value></value>用进行赋值,如<value>1</value> 3、为map属性赋值我们知道map是以键值对的形式进行存储的,而且其中有时候也可以存放多种类型的数据,那么对于map类型的属性又应该如何进行赋值的呢? 与list赋值相似,这里在map中存放的数据需要写在<map></map>标签内,同时使用特定的<entry></entry>标签写入元素, 一个entry就可以创建一个key和value, 同时value的类型不同,所赋值的方法也不同,对于普通的value直接使用value=””即可,对于引用对象使用value-ref、对于新的bean对象或者list对象就需要在<entry></entry>标签中进行创建了,具体使用可以看下面的代码:
4、为Properties类赋值首先,何为Properties类?Properties 类位于 java.util.Properties ,是Java 语言的配置文件所使用的类, Xxx.properties 为Java 语言常见的配置文件,如数据库的配置 jdbc.properties, 系统参数配置 system.properties。 Properties 类具体使用时以key=value的键值对的形式进行存储值。 key值不能重复。 在IOC中对Properties对象进行赋值时,需要书写在<props></props>标签中,使用<props>定义java.util.Properties,该标签使用多个<prop>作为子标签。每个<prop>标签必须定义key属性,如我们在进行数据库连接时在IOC容器中书写的配置:
三、级联属性赋值采用级联属性进行赋值,是对属性的属性进行赋值,如我们的person对象中有一个car属性,而car属性中还有carName、price等属性,
具体使用是在<bean></bean>中重新写一个<property></property>标签,在其中对car属性的price属性进行赋值,具体代码如下:
四、IOC中属性类的继承我们知道Java中可以使用extend进行类的继承,那你知道在spring的IOC中也可以实现类的继承吗?
在springIOC中abstract参数用来表示该类是否是抽象类,值为“true”时是抽象类,为“false”时不是抽象类。 对于需要继承该抽象类的类,使用parent参数来声明继承哪个类。同时对于特有的需要修改的属性值,我们可以直接在<bean></bean>标签中使用<property></property>进行赋值。操作代码如下:
五、写在最后好了,到这里关于SpringIOC中复杂属性的赋值和级联属性及继承的使用就和小伙伴们讲完了,之后还会继续和大家分享SSM框架的详细使用教程,感兴趣的小伙伴们可以关注专栏《SSM编程日记》! 文中有讲的不清楚或者有欠缺的地方欢迎小伙伴们留言提出或添加我的微信。 点赞收藏,以留备用哟! 我是灰小猿!我们下期见! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/18 17:53:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |