02_Spring Bean 属性 即xml <beans>标签详解
Spring Bean
Spring IOC容器相当于一个工厂,容器中的 Bean 相当工厂的产品。工厂要生产和管理 Bean,需要让工厂知道加载那些Bean,如何加载。
Spring 配置文件支持两种不同的格式,分别是 XML 文件格式和 Properties 文件格式。
一般Spring 以 XML 文件格式作为 Spring 的配置文件,通过 XML 配置文件注册并管理 Bean 之间的依赖关系。
Beans.xml 头配置
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean></bean>
</beans>
bean标签常用属性
属性 | 描述 |
---|---|
id | Bean 的唯一标识符,Spring 容器对 Bean 的配置和管理都通过该属性完成 |
name | Spring 容器同样可以通过此属性对容器中的 Bean 进行配置和管理,name 属性中可以为 Bean 指定多个名称,每个名称之间用逗号或分号隔开 |
class | 指定了 Bean 的具体实现类 |
scope | Bean 实例的作用域, singleton(默认单例)、prototype(原型)、request、session 和 global Session |
属性 | 描述 bean元素的子元素 |
---|---|
constructor-arg | 此元素传入构造参数进行实例化, index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型 |
property | 调用 Bean 实例中的 Set 方法完成属性赋值,元素的 name 属性指定 Bean 实例中的相应属性名 |
属性 | 描述 property constructor-arg等元素的子元索 |
---|---|
ref | property 和 constructor-arg 元素的子元索,ref元素中的 bean 属性用于指定对 Bean 工厂中某个 Bean 实例的引用 |
value | property 和 constructor-arg 元素的子元索,用于直接指定一个常量值 |
属性 | 描述 |
---|---|
list | 用于封装 List 或数组类型的依赖注入 |
set | 用于封装 Set 类型属性的依赖注入 |
map | 用于封装 Map 类型属性的依赖注入 |
entry | map元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value 子元素指定其值 |
bean的实例化 bean标签用例
1:加载user,通过默认无参的构造方法加载user
User类
public class User {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}
spring.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- bean就是java对象 由spring来创建和管理 --> <bean id="user" class="cn.lingyiwin.bean.User"/>
</beans>
TestUser类
public class TestUser {public static void main(String[] args) {ApplicationContext act =new ClassPathXmlApplicationContext("config/spring.xml");User user = (User)act.getBean("user");System.out.println(user);}
}
执行结果:说明User对象已经被Spring
cn.lingyiwin.bean.User@2b98378d
上面示例如果没有看明白,我将默认的构造方法打一行带吗?
修改User类
public class User {private String name;public User() {System.out.println("user对象被创建");}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
执行结果:
user对象被创建
cn.lingyiwin.bean.User@2b98378d
2:通过property 为user的那么属性设置值。并打印输出
必须有该属性的set方法。
<bean id="user" class="cn.lingyiwin.bean.User"><property name="name" value="设置name的值"/>
</bean>
执行结果:
user对象被创建
cn.lingyiwin.bean.User@56ac3a89
设置name的值
3:通过有参的构造函数加载user对象
user对象
public class User {private String name;public User(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
修改xml
<bean id="user" class="cn.lingyiwin.bean.User"><constructor-arg name="name" value="有参构造方法"/></bean>
执行结果:
cn.lingyiwin.bean.User@5cb9f472
有参构造方法
4:通过构造方法中还有很多属性可以设置。可以参考官方文档。
index:通过下标设置
name:通过名称设置
type:通过参数类型设置 String int等
<constructor-arg type="String"><value>String</value></constructor-arg>
ref 是引用类型,value 是用来设置值。
02_Spring Bean 属性 即xml <beans>标签详解相关推荐
- Java--web.xml加载过程;文件标签详解
一.web.xml加载过程 我们在启动Javaweb项目时,首先需要启动一个容器(如Tomcat,JBoss) WEB加载web.xml过程如下: 1.在启动Web项目时,容器(如Tomcat,JBo ...
- z-index失效的几种情况,父标签position属性为relative的时候,详解
网上对这一方面解释的很多,我也不想把别人的抄过来.在这里是加上我对这些情况的理解还有我的一些疑惑,若有问题,请留言,谢谢!!!话不多说,进入正题: 文章重点:z-index失效的一类情况:父标签pos ...
- ssh2的application.xml配置文件配置详解
ssh2的application.xml配置文件配置详解 1.导入其他的配置文件.在ssh项目中可以导入其他的配置文件,导入的格式为: <import resource="classp ...
- java crossdomin.xml_crossdomain.xml的配置详解
目录 1 简介 2 crossdomain.xml的配置详解 3 总结 1 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及 ...
- W3C中meta标签详解
2019独角兽企业重金招聘Python工程师标准>>> meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <meta ...
- Pom.xml文件教程详解
原创整理不易,转载请注明出处:史上最全的maven pom.xml文件教程详解 代码下载地址:http://www.zuidaima.com/share/1781583829978112.htm ...
- JSF标签详解(全)
转自:https://wenku.baidu.com/view/82b84b255901020207409c87.html :https://blog.csdn.net/qq_36411874/art ...
- SEO技巧:Meta标签详解
网页设计:Meta标签详解 您的个人网站即使做得再精彩,在"浩瀚如海"的网络空间中,也如一叶扁舟不易为人发现,如何推广 个人网站,人们首先想到的方法无外乎以下几种: ●在搜索引擎中 ...
- 网页设计:Meta标签详解
网页设计:Meta标签详解 很多人忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧! META标签是H ...
最新文章
- RDKit | 比较化合物并通过PCA可视化化学空间
- oracle 代码 字段映射,将ORACLE TIMESTAMP(9)字段映射到java.util.Date
- python下载模块命令_python kafka模块操作命令集合
- 动态规划简单应用:斐波那契数列
- 如何解开机器学习的面纱?
- php 输入值,php-HTML输入值更改
- Python实现查询12306火车票信息
- 每天一算法(二)实现栈的push pop 操作,并可以输出栈的最小值
- 程序员面试金典——17.5珠玑妙算
- day03_01 Python历史、32bit和64bit系统的区别
- 计算机网络管理一07872自考知识点,电子信息工程专业2019年10月四川自考科目及考试时间[本科]...
- 合理利用计算机虚拟内存,虚拟内存有什么用?虚拟内存怎么设置最好?
- 新西兰 计算机 转专业,在留学新西兰以后,半途想转专业怎么办?
- 应急通信于气象雷达的应用
- RabbitMQ安装过程(Win10)
- MySQL学习笔记——20170811
- 新年伊始 张孝祥老师 离开了
- IDEA之翻译器的妙用Translation
- sssssssssssssssssssssssssss
- 费曼学习法——孩子弱点方向的提升和沟通技巧