Bean的注册与使用
注册
在resources目录下新建一个Spring配置文件(IDEA里可以直接新建的)。写入如下配置:
<bean id="p1" name="person01" class="com.llh.studyspring.beans.Person"/>
这里就完成了把Java类注册到Spring容器。
豆知识
这个配置文件默认名为applicationContext.xml。
使用<import>标签配置文件是可以“引入”其他配置文件。
关于id与name属性
-
id是唯一的且每个Bean只能配置一个,name可以重复,每个Bean可以配置多个(用逗号隔开)
-
id命名规范是有限制的,按照Java变量命名规则来就行;name命名没有明确的规范,但不建议乱命名。id在Spring3.x版本后不使用
xml:id,就是说也不太严格了。 -
id有重复时,程序启动会报错;
name重复时,后初始化的会覆盖前一个Bean(配置两个相同name的Bean在我本机上会报错,建议不要配置相同的name属性) -
id和name都没指定时,称之为匿名Bean,采用全限定类名作为其name属性。多个同类匿名Bean则可用下面的方式获取Bean:
Object bean1 = context.getBean("com.llh.studyspring.util.SecondBean"); // 就是 #0 Object bean2 = context.getBean("com.llh.studyspring.util.SecondBean#0"); Object bean3 = context.getBean("com.llh.studyspring.util.SecondBean#1"); Object bean4 = context.getBean("com.llh.studyspring.util.SecondBean#2");
使用
对于已经注册到Spring容器中的Java类,即是Spring Bean,可以很简单的获取它们的实例。如下:
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans01.xml");
Person p1 = ctx.getBean("p1", Person.class);
对于获取Spring Bean实例的方法getBean使用如下形式时,
// 直接使用类获取bean必须保证此类只被配置一次
Person bean = ctx.getBean(Person.class);
请确保此类只被注册过一次。
豆知识
ClassPathXmlApplicationContext是用于非web环境下的容器。
小结
把一个普通的Java类注册到Spring容器中是件很简单的事,只需要将这个类的全限定名“告诉”Spring容器,就可完成最简单的类注册。
获取Spring Bean也是比较简单的事,可以根据它注册时的id、name和类型信息获取。
尾巴:我可能写得不对,但不想抬杠玩。

浙公网安备 33010602011771号