【第22期】观点:IT 行业加班,到底有没有价值?

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学习笔记(二) IoC容器与Bean

本文为Spring的学习笔记,有参考极客学院的wiki内容。 (我的博客原文地址:https://chaycao.github.io/2016/09/19/StudyNotesOfSpring2/ ...

Spring学习笔记—装配Bean

Spring学习笔记—装配Bean    在Spring中,对象无需自己负责查找或创建与其关联的其他对象。相反,容器负责把需要相互协作的对象引用赋予各个对象。创建应用对象之间协作关系的行为通常称为装配...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

Spring学习笔记—Spring之旅 . -----装配Bean

spring学习笔记—Spring之旅 1.Spring简介     Spring是一个开源框架,最早由Rod Johnson创建,并在《Expert One-on-One:J2EE Design...

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

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

spring学习笔记02_注解配置Bean_AOP_

spring学习笔记02 注解配置bean aop
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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