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学习(十三)Spring Bean 的命名方式介绍

一般情况下,在配置一个Bean时需要为其指定一个id属性作为bean的名称。id在IoC容器中必须是唯一的,此外id的命名需要满足xml对id的命名规范。        在实际情况中,id命名约束并...
  • icarus_wang
  • icarus_wang
  • 2016年06月04日 23:11
  • 1198

使用Spring对JavaBean进行注入时应注意的命名规范

一般在使用Spring进行 JavaBean进行注入 是  public void setUerDAO(UserDAO userdao).然后可以在Spring的      .这里的第1个参数是 se...
  • kevin_w_l
  • kevin_w_l
  • 2007年05月10日 16:17
  • 1930

Spring XML配置文件结构及bean的命名

XML文件的结构一般如下
  • shymi1991
  • shymi1991
  • 2015年08月30日 18:12
  • 3122

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

基于xml的配置基础配置 class为bean的全限定名,指向
  • qwe6112071
  • qwe6112071
  • 2016年03月14日 12:12
  • 2422

spring Bean 的命名

1、bean 的名字即id 必须是唯一的 2、bean的名字 可以用id 也可以用name.如果是id 必须已字母开头,后面可以使用特殊字符如数字,下划线,冒号,连字符等,不可以使用逗号 空...
  • liyuan0323
  • liyuan0323
  • 2017年03月16日 13:21
  • 109

JavaBean的命名规则

  JavaBean的命名规则  document.body.oncopy = function() { if (window.clipboa...
  • antswallow
  • antswallow
  • 2009年08月18日 14:47
  • 5695

spring Bean的命名

每个Bean可以有一个或多个Id,我们把第一个id成为标识符,其余id叫做别名,这些id在ioc容器中必须唯一,bean id的命名约定如下。     bean id的命名方式: 配置全...
  • wangqingqi20005
  • wangqingqi20005
  • 2016年09月07日 12:36
  • 384

Spring Configuration动态绑定bean id

简述: 对于bean id 可能在注入的时候需要根据配置动态的制定实例
  • anialy
  • anialy
  • 2014年10月13日 14:08
  • 1517

Spring中默认bean名称的生成策略/方式修改

Spring中默认bean名称的生成策略/方式修改 最近公司项目打算模块化,其实一个原因也是为了能够整合公司多个业务的代码,比如一个资源xxx,两个业务中都有对这个资源的管理,虽然是一个资源,但...
  • jackyechina
  • jackyechina
  • 2016年11月26日 21:44
  • 1666

Spring源码学习笔记(四)-Aop获取增强、切点

获取增强共两步,第一步获取所有增强(findCandidateAdvisors()),第二步寻找适合该Bean的增强(findAdvisorsThatCanApply)。 在上一章中,//获取增强 ...
  • chenlin597898889
  • chenlin597898889
  • 2016年06月08日 14:13
  • 703
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring Bean的命名(学习笔记)
举报原因:
原因补充:

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