Bean的注册与使用

注册

resources目录下新建一个Spring配置文件(IDEA里可以直接新建的)。写入如下配置:

<bean id="p1" name="person01" class="com.llh.studyspring.beans.Person"/>

这里就完成了把Java类注册到Spring容器。

豆知识

这个配置文件默认名为applicationContext.xml

使用<import>标签配置文件是可以“引入”其他配置文件。

关于id与name属性

  1. id是唯一的且每个Bean只能配置一个,name可以重复,每个Bean可以配置多个(用逗号隔开)

  2. id命名规范是有限制的,按照Java变量命名规则来就行;name命名没有明确的规范,但不建议乱命名。id在Spring3.x版本后不使用xml:id,就是说也不太严格了。

  3. id有重复时,程序启动会报错;name重复时,后初始化的会覆盖前一个Bean(配置两个相同name的Bean在我本机上会报错,建议不要配置相同的name属性)

  4. 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和类型信息获取。

posted @ 2020-08-09 15:43  梅鼬乾  阅读(430)  评论(0)    收藏  举报