博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring学习笔记(3)——bean配置细节注意
阅读量:5160 次
发布时间:2019-06-13

本文共 3416 字,大约阅读时间需要 11 分钟。

1. 一个bean引用另外一个bean

当Person类中有一个属性是Car,那么该如何配置呢

person:

package com.zj.spring;public class Person { private String name; private int age; private Car car; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", car=" + car + "]"; } } car:
package com.zj.spring;public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "Car [brand=" + brand + ", price=" + price + "]"; } }

 

使用ref来引用其他bean

2. 当value中有特殊符号

如果value值有 < 这样子的特殊符号,将会出错,因为该符号在xml文件中是节点的起始 

我们可以使用<![CDATA[value]]>来解决    <bean id="car" class="com.zj.spring.Car">

]]>

 

这里写图片描述

3. 使用内部bean

之前person引入car类,我们也可以使用内部类

两者有什么区别

内部bean可以不写id,内部bean不能被其他bean使用,有点像匿名类,内部类的感觉

4. null值

如果你想给属性赋null值,应该这样写

5. 级联属性配置

 

6. 集合属性

假设一个person有好几辆Car 

我们改造一下person

package com.zj.collection;import java.util.List;public class Person { private String name; private int age; private List
cars; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public List
getCars() { return cars; } public void setCars(List
cars) { this.cars = cars; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", cars=" + cars + "]"; } }

car还是和原来一样。那么该怎么配置呢

 

  • 同样的,除了使用list节点,也可以使用set节点和map节点
  • map比较特殊一些,因为他是键值对的形式

map可以这样配置

        

 

.util.Properties类型 

在配置的时候,会需要properties,那么该如何配置这种类型的bean呢 
先写一个DataSource类模拟一下

package com.zj.collection;import java.util.Properties;public class DataSource { private Properties properties; public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } @Override public String toString() { return "DataSource [properties=" + properties + "]"; } }

 

配置

root
123
jdbc:mysql://xxxx
com.mysql.jdbc.Driver

 

mian方法

DataSource dataSource = (DataSource) ctx.getBean("dataSource");        System.out.println(dataSource);

 

 

打印结果 

这里写图片描述

7. 配置独立的集合bean,供多个bean引用

上面的集合属性,都是在bean的内部,不能被其他的bean引用,我们可以使用util:list来配置集合,就可以被多个bean引用

 

 

还有util:properties等,用法都差不多

  • 注意,需要引入util命名空间 
    xmlns:util="http://www.springframework.org/schema/util"

8. 使用p命名空间

p命名空间可以简化我们配置bean的过程,减少工作量 

先导入p命名空间

xmlns:p="http://www.springframework.org/schema/p"

配置

转载于:https://www.cnblogs.com/haoxiu1004/p/7298968.html

你可能感兴趣的文章
Thinkphp整合最新Ueditor编辑器
查看>>
203. 移除链表元素
查看>>
第九周作业·
查看>>
Unity多媒体展示项目经验分享-ImageEffect+动态绑定
查看>>
Java50道经典习题-程序28 排序算法
查看>>
Java基础---String类和基本数据类型包装类
查看>>
[NYOJ 37] 回文字符串
查看>>
C#-表达式树
查看>>
2.想起来的一点基础知识
查看>>
曾经踩过的坑--浏览器兼容-history
查看>>
centos7 Apache 2.4.6 多域名多网站配置
查看>>
MySQL性能优化
查看>>
建造者模式(Builder Pattern)
查看>>
程序开发的艺术
查看>>
对 Unity 碰撞器的相关调研
查看>>
linux 快速清空文件内容
查看>>
centos7安装配置jdk
查看>>
新年新气象
查看>>
webpack入门
查看>>
查看容器的挂载目录
查看>>