文档章节

Spring4-容器2-bean的命名

王胜_淡如止水
 王胜_淡如止水
发布于 2017/03/24 13:59
字数 519
阅读 30
收藏 1

1 命名规则

(1)每个bean都有一个或多个标识符,这些bean的标识符在它所在的容器中必须唯一。

(2)基于xml的配置元数据中,你可以使用id 或(和) name 属性来指定bean的标识符,用 name 属性指定的值通常又称为别名。

(3) id属性只允许指定一个值,name属性可以允许指定多个值,可以使用逗号(,),分号(;)或者空格来分割这些值。

(4)bean的id和name不是必须的。如果没有明确的name或者id,容易会给bean生成一个唯一的名字。

(5)id只能在定义Bean的时候定义,别名可以在定义的Bean的时候指定,也可以通过<alias/>元素来完成bean别名的定义

2 命名示例

2.1 示例准备-User类

package com.ws.edu.spring;

public class User {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public User() {
		super();
	}
	public User(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + "]";
	}
}

2.2 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/beans
	        http://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- 使用id属性定义唯一标识符 -->
	<bean id="user" class="com.ws.edu.spring.User" />
	<!-- 使用name属性定义唯一标识符 -->
	<bean name="user1" class="com.ws.edu.spring.User" />
	<!-- 使用name属性用逗号分隔定义多个标识符 -->
	<bean name="user2,user3" class="com.ws.edu.spring.User" />
	<!-- 使用name属性用分号分隔定义多个标识符 -->
	<bean name="user4;user5" class="com.ws.edu.spring.User" />
	<!-- 使用name属性用分号分隔定义多个标识符 -->
	<bean name="user6 user7" class="com.ws.edu.spring.User" />
	<!-- 使用alias标签定义别名 -->
	<alias name="user" alias="user8"/>
	<!-- 使用alias标签定义别名 -->
	<alias name="user1" alias="user9"/>
</beans>

2.3 启动类

package com.ws.edu.spring;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		System.out.println(context.getBean("user",User.class));
		System.out.println(context.getBean("user1",User.class));
		System.out.println(context.getBean("user2",User.class));
		System.out.println(context.getBean("user3",User.class));
		System.out.println(context.getBean("user4",User.class));
		System.out.println(context.getBean("user5",User.class));
		System.out.println(context.getBean("user6",User.class));
		System.out.println(context.getBean("user7",User.class));
		System.out.println(context.getBean("user8",User.class));
		System.out.println(context.getBean("user9",User.class));
	}
}

2.4 测试结果

© 著作权归作者所有

王胜_淡如止水
粉丝 4
博文 52
码字总数 81235
作品 0
杭州
私信 提问
说说 Spring 的注解配置

1 定义 Bean XML 或注解配置方式,都是表达 Bean 定义的载体,其实质都是为 Spring 容器提供 Bean 定义的信息 。 基于注解的配置方式,从 Spring2.0 开始引入, Spring2.5 完善, Spring4.0 ...

deniro
2018/05/10
0
0
说说在 Spring 中如何基于 Java 类进行配置

JavaConfig 原来是 Spring 的一个子项目,它通过 Java 类的方式提供 Bean 的定义信息,在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能 。 1 定义 Bean 普通的 POJO 只要标注...

deniro
2018/05/11
0
0
SSH框架之Spring4专题2:Spring与loC

控制反转(loC,Inversion of Control),是一个概念,是一种思想。指的是将传统上由程序代码直接操纵的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转...

糖醋白糖
2018/06/26
0
0
Spring4新特性——Web开发的增强

Spring4新特性——泛型限定式依赖注入 Spring4新特性——核心容器的其他改进 Spring4新特性——Web开发的增强 Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC Spring4新特性...

张升强
2014/04/02
144
0
5分钟构建spring web mvc REST风格HelloWorld

当然写本文的目的不是为了速度,只是表明现在构建一个Spring web mvc Rest风格的HelloWorld应用会很简单。不过如果看过Spring Boot这个项目,可能只需要最多3分钟就能构建一个简单的Rest风格...

黄金小猪2号
2014/01/07
4.3K
2

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部