时间:2021-05-20
本文主要描述的是关于spring中bean的命名方式,通过简单实例向大家介绍了六种方式,具体如下。
一般情况下,在配置一个Bean时需要为其指定一个id属性作为bean的名称。id在IoC容器中必须是唯一的,此外id的命名需要满足xml对id的命名规范。
在实际情况中,id命名约束并不会给我们带来影响。但是如果用户确实希望用到一些特殊字符来对bean进行命名,那么可以使用bean的name属性来进行命名,name属性没有字符上的限制,几乎可以使用任何字符。
每个Bean可以有一个或多个id,我们把第一个id称为“标识符”,其余id叫做“别名”,这些id在IoC容器中必须唯一。
首先来介绍一下Beanid的命名规则:
1.遵循XML命名规范
2.由字母,数字,下划线组成
3.驼峰式,首个单词字母小写,从第二个单词开始首字母大写。
接下来我们使用具体的例子来介绍Bean的不同命名方式
1.配置全限定类名,唯一
在示例中主要向大家输出问候信息,我们需要一个HelloWorld接口以及一个名称为HelloWorldImpl的实现类。接下来我们创建一个配置文件和一个程序的入口类。
首先在项目中创建包definition,接下来在包中创建HelloWorld接口:
public interface HelloWorld { public void sayHello(); }接下来我们创建HelloWorldImpl实现类:
public class HelloWorldImpl implements HelloWorld{ public void sayHello() { System.out.println("Hello World"); } }接下来我们在配置文件中为HelloWorldImpl进行Bean的命名:
<bean class="cn.lovepi.chapter03.definition.HelloWorldImpl"/>我们在程序入口Mian.java来加载配置文件以及运行示例。
public static void sayHelloWorldByClass(){ //使用FileSystemXmlApplicationContext加载配置文件信息 BeanFactory beanFactory= new FileSystemXmlApplicationContext("src/conf/conf-definition.xml"); //获取bean实例 HelloWorld helloWorld=beanFactory.getBean(HelloWorldImpl.class); helloWorld.sayHello(); }在Main.java文件当中我们需要:
1.完成配置文件的加载以及SpringIoC容器的启动
2.从容器中获得HelloWorldImpl实现类的实例
3.输出问候信息
2.指定id,唯一
在配置文件中对bean进行配置
<bean id="HelloWorldById" class="cn.lovepi.chapter03.definition.HelloWorldImpl"/>修改Main程序入口,新建方法来调用bean
public static void sayHelloWorldById(){ BeanFactory factory= new FileSystemXmlApplicationContext("src/conf/conf-definition.xml"); HelloWorld helloWorld=factory.getBean("HelloWorldById",HelloWorldImpl.class); helloWorld.sayHello(); }3. 指定name,name为标识符,唯一
在配置文件中对bean进行配置
<bean name="HelloWorldByName" class="cn.lovepi.chapter03.definition.HelloWorldImpl"/>修改Main程序入口,新建方法来调用bean
public static void sayHelloWorldByName(){ BeanFactory factory= new FileSystemXmlApplicationContext("src/conf/conf-definition.xml"); HelloWorld helloWorld=factory.getBean("HelloWorldByName",HelloWorldImpl.class); helloWorld.sayHello(); }4.指定id和name,其中id为标识符,name为别名,唯一
在配置文件中对bean进行配置
<bean id="HelloWorldById01" name="HelloWorldByName01" class="cn.lovepi.chapter03.definition.HelloWorldImpl"/>修改Main程序入口,新建方法来调用bean
public static void sayHelloWorldByNameAndId(){ BeanFactory factory= new FileSystemXmlApplicationContext("src/conf/conf-definition.xml"); HelloWorld helloWorld01=factory.getBean("HelloWorldById01",HelloWorldImpl.class); HelloWorld helloWorld02=factory.getBean("HelloWorldByName01",HelloWorldImpl.class); helloWorld01.sayHello(); helloWorld02.sayHello(); }5. 指定多个name,其中多个name需要用分号来进行分割,第一个name为标识符,其他的为别名,唯一
在配置文件中对bean进行配置
<bean name="bean1;alias01;alias02;alias03" class="cn.lovepi.chapter03.definition.HelloWorldImpl"/> <bean id="bean2" name="alias11;alias12;alias13" class="cn.lovepi.chapter03.definition.HelloWorldImpl"/>修改Main程序入口,新建方法来调用bean
public static void sayHelloWorldByMutilName(){ BeanFactory factory= new FileSystemXmlApplicationContext("src/conf/conf-definition.xml"); HelloWorld helloWorld1=factory.getBean("bean1",HelloWorldImpl.class); HelloWorld helloWorld01=factory.getBean("alias01",HelloWorldImpl.class); HelloWorld helloWorld02=factory.getBean("alias02",HelloWorldImpl.class); HelloWorld helloWorld03=factory.getBean("alias03",HelloWorldImpl.class); helloWorld1.sayHello(); helloWorld01.sayHello(); helloWorld02.sayHello(); helloWorld03.sayHello(); HelloWorld helloWorld2=factory.getBean("bean2",HelloWorldImpl.class); HelloWorld helloWorld11=factory.getBean("alias11",HelloWorldImpl.class); HelloWorld helloWorld12=factory.getBean("alias12",HelloWorldImpl.class); HelloWorld helloWorld13=factory.getBean("alias13",HelloWorldImpl.class); helloWorld2.sayHello(); helloWorld11.sayHello(); helloWorld12.sayHello(); helloWorld13.sayHello(); }6. 指定别名,使用alias标签来进行指定,唯一
在配置文件中对bean进行配置
<bean name="bean3" class="cn.lovepi.chapter03.definition.HelloWorldImpl"/> <alias name="bean3" alias="alias21"/> <alias name="bean3" alias="alias22"/>修改Main程序入口,新建方法来调用bean
public static void sayHelloWorldByAlias(){ BeanFactory factory= new FileSystemXmlApplicationContext("src/conf/conf-definition.xml"); HelloWorld helloWorld01=factory.getBean("bean3",HelloWorldImpl.class); HelloWorld helloWorld02=factory.getBean("alias21",HelloWorldImpl.class); HelloWorld helloWorld03=factory.getBean("alias22",HelloWorldImpl.class); helloWorld01.sayHello(); helloWorld02.sayHello(); helloWorld03.sayHello(); }利用别名命名时得先有一个唯一的名称(id和name都可以)
总结
以上就是本文关于Spring中Bean的命名方式代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
《浅谈Spring中Bean的作用域、生命周期》
《Spring实例化bean的方式代码详解》
《Spring工厂方法创建(实例化)bean实例代码》
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
自动装配是Spring满足Bean依赖的一种方式;Spring会在context中自动寻找,并自动给bean装配属性;在Spring中有三种装配的方式:在xml
前言在介绍Bean的实例化的方式之前,我们首先需要介绍一下什么是Bean,以及Bean的配置方式。如果把Spring看作一个大型工厂,那么Spring容器中的B
一、了解Spring自动装配的方式采用传统的XML方式配置Bean组件的关键代码如下所示我们通过标签为Bean的属性注入所需的值,当需要维护的Bean组件及需要
1.在一些特殊的场景中需要动态向spring注册bean2.spring版本2.5.6复制代码代码如下:publicclassServiceServiceImp
这篇文章主要介绍了Spring为IOC容器注入Bean的五种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以