Spring Bean的命名(学习笔记)

原创 2016年06月01日 17:47:57

Bean id 的命名方式:

  • 配置全限定类名,唯一

Conf-definiton.xml

<?xmlversion="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-3.0.xsd">
<bean class="com.bestone.spring.chapter04.definition.HelloWorldImpl" />                <!--通过全限定命名命名bean  -->
<bean name="helloWorldByName"class="com.bestone.spring.chapter04.definition.HelloWorldImpl" />
</beans>


Main.java

public static voidsayHelloWorldByClass() {   //通过全限定命名命名bean
BeanFactory beanFactory =
newClassPathXmlApplicationContext("conf/conf-definition.xml"); //读取配置文件实例化一个IOC容器
HelloWorld helloWorld =beanFactory.getBean(HelloWorldImpl.class); //从容器中获取Bean
helloWorld.sayHello();  //执行业务逻辑
}


  • 指定id,唯一

Conf-definiton.xml

<?xmlversion="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-3.0.xsd">
class="com.bestone.spring.chapter04.definition.HelloWorldImpl"/>                 <!--通过指定id进行bean的命名  -->
<beanname="helloWorldByName"class="com.bestone.spring.chapter04.definition.HelloWorldImpl" />
</beans>


Main.java

public static void sayHelloWorldById(){        //通过指定id进行bean的命名
BeanFactory beanFactory =
new ClassPathXmlApplicationContext("conf/conf-definition.xml");        //1.配置文件的加载和IOC容器的启动
HelloWorld helloWorld =beanFactory.getBean("helloWorld", HelloWorld.class); //2.通过id从容器中获取HelloWold bean的实例
helloWorld.sayHello(); //3.利用HelloWorld Bean实例输出问候信息
}
 


  • 指定name,唯一

name即所谓的标识符

<beanname="helloWorldByName"class="com.bestone.spring.chapter04.definition.HelloWorldImpl" />                <!--通过name命名bean -->

 

Main.java

public static void sayHelloWorldByName() {
BeanFactory beanFactory =
new ClassPathXmlApplicationContext("conf/conf-definition.xml");
HelloWorldhelloWorld = beanFactory.getBean("helloWorldByName",HelloWorld.class);
helloWorld.sayHello();
}


 

  • 指定id和name,唯一

 

<!--通过id和name命名bean-->

<beanid="helloWorldById" name="helloWorldByName01"

class="com.bestone.spring.chapter04.definition.HelloWorldImpl"/>

 

Main.java

public static void sayHelloWorldByNameAndId() {
BeanFactory beanFactory =
new ClassPathXmlApplicationContext("conf/conf-definition.xml");
HelloWorldhelloWorld01 = beanFactory.getBean("helloWorldById",HelloWorld.class);
helloWorld01.sayHello();          
HelloWorldhelloWorld02 = beanFactory.getBean("helloWorldByName01",HelloWorld.class);
helloWorld02.sayHello();
 
}


 

 

  • 指定多个name,唯一

<!-- 通过指定多个name命名bean --><!-- 指定单独的id和多个别名命名bean -->

<beanname="bean1;alias11;alias12;alias13"

class="com.bestone.spring.chapter04.definition.HelloWorldImpl"/>

<bean id="bean2"name="alias21,alias22,alias23"        

class="com.bestone.spring.chapter04.definition.HelloWorldImpl"/>

 

 

Main.java

public static void sayHelloWorldByMultiName() {
BeanFactory beanFactory =
new ClassPathXmlApplicationContext("conf/conf-definition.xml");
HelloWorld bean1 =beanFactory.getBean("bean1", HelloWorld.class);        //调用不同的name和id来实例化bean
bean1.sayHello();         
HelloWorldbean11 = beanFactory.getBean("alias11", HelloWorld.class);
bean11.sayHello();
HelloWorld bean12 = beanFactory.getBean("alias12",HelloWorld.class);
bean12.sayHello();
HelloWorldbean13 = beanFactory.getBean("alias13", HelloWorld.class);
bean13.sayHello();
 
HelloWorldbean2 = beanFactory.getBean("bean2", HelloWorld.class);
bean1.sayHello();
HelloWorldbean21 = beanFactory.getBean("alias21", HelloWorld.class);
bean21.sayHello();
HelloWorldbean22 = beanFactory.getBean("alias22", HelloWorld.class);
bean22.sayHello();
HelloWorldbean23 = beanFactory.getBean("alias23", HelloWorld.class);
bean23.sayHello();
}


 

 

  • 指定别名,唯一

<!-- 指定别名命名bean-->

<bean name="bean3"

class="com.bestone.spring.chapter04.definition.HelloWorldImpl"/>

<aliasalias="alias31" name="bean3" />

<aliasalias="alias32" name="bean3" />

 

 

Main.java

public static void sayHelloWorldByAlias() {
Bean Factory beanFactory =
new ClassPathXmlApplicationContext("conf/conf-definition.xml");
HelloWorldbean3 = beanFactory.getBean("bean3", HelloWorld.class);
HelloWorldbean31 = beanFactory.getBean("alias31", HelloWorld.class);
HelloWorldbean32 = beanFactory.getBean("alias32", HelloWorld.class);
bean3.sayHello();
bean31.sayHello();       //通过bean的别名获得实例
bean32.sayHello();
}


 

 

Bean id的命名约定:

1.遵循XML命名规范

2.由字母,数字,下划线组成

3.驼峰式,首个单词字母大写

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

spring学习笔记(3)Bean命名、定义与配置

基于xml的配置基础配置 class为bean的全限定名,指向

Spring学习笔记 关于Bean的初始化和清理-init和destroy方法

如果需要在Bean被创建以及销毁时执行特定的初始化与清理操作在Spring中有两种选择。 1.在XML中定义bean的init-method与destroy-method属性    执行ini...

《Spring源码深度解析》学习笔记——bean的加载(一)

bean的加载对于加载bean的功能,在Spring中的调用方式为:MyTestBean bean = (MyTestBean)bf.getBean("myTestBean") 这行代码在Spring...

Spring学习笔记二(Bean注入的几种方式)

1.前言 上一篇博客从宏观上讲解了一下Spring的知识,下面这篇来着重讲解一下有关Bean注入的几种方式。  2.Bean注入的几种方式 2.1 类构造器初始化 这也是默认的方式,在...

spring学习笔记(12)——使用注解方式配置bean

常用的注解常用的有四个注解 Controller: 用于控制器的注解 Service : 用于service的注解 Component: 用于基本组件的注解 Repository...

spring学习笔记(5)——bean的继承与依赖关系

bean的继承关系bean之前可以继承,子bean可以继承父bean的属性,这很好理解。看代码 ...

Spring 学习笔记1--三种实例化Bean方法、注解

首先通过一个简单的程序学习Spring在程序中的运用。 定义一个接口: package com.spring.interfacebean; public interface Perso...

spring学习笔记——引用bean的属性值,动态管理网站参数与菜单项

我所在公司的开发框架很陈旧,功能上也有很多bug,唯一让我觉得NB的是这框架可以动态调整自己的界面菜单、子菜单,动态配置权限和各种参数。一直想知道这种功能的实现方式,今天看书,发现spring中对be...
  • gklifg
  • gklifg
  • 2013年11月12日 22:52
  • 809

Spring学习笔记(3.IOC及Bean容器)

1. IOC1.1 接口 用于沟通的中介物的抽象化 实体把自己提供给外界的一种抽象化说明,用以由内部操作分离处外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式 对应Java接口即声明,...
  • LXChild
  • LXChild
  • 2016年12月05日 11:51
  • 218

Spring学习笔记—装配Bean

Spring学习笔记—装配Bean    在Spring中,对象无需自己负责查找或创建与其关联的其他对象。相反,容器负责把需要相互协作的对象引用赋予各个对象。创建应用对象之间协作关系的行为通常称为装配...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring Bean的命名(学习笔记)
举报原因:
原因补充:

(最多只允许输入30个字)