Spring注解方式实现IOC及ID推断规则

1.概述

当使用Spring注解@Componet标注某个类时,可以指定id,如果不指定id,那么默认会是类名的小写,这是spring的一个推断功能。spring的推断功能是符合外国人的习惯,如Person,第二个字母是小写,按照习惯应该是一个单词,推断出的是person。而NBA,第二个字母是大写,按照习惯不是一个单词,则保持不变,推断出是NBA.

2.代码示例

创建类PErson3,pErson4,person5,在person5 上通过注解@Component("per5") 指定id为per5。

//PErson3 
@Component
public class PErson3 {
}

//pErson4 
@Component
public class pErson4 {
}

//person5 
@Component("per5")
public class person5 {
}

在web.xm 中配置包扫描

 <!--配置IOC包扫描-->
 <context:component-scan base-package="cn.ww.domain"/>

编写测试类:

    @Test
    public void test02(){
        //1.初始化Spring容器
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2.获取bean
        PErson3 p3 = (PErson3) context.getBean("PErson3");
        System.out.println(p3);
        pErson4 p4 = (pErson4) context.getBean("pErson4");
        System.out.println(p4);
        person5 p5 = (person5) context.getBean("per5");
        System.out.println(p5);
        //3.关闭容器
        ((ClassPathXmlApplicationContext)context).close();
    }

 根据id运行结果为:

根据上面的结果可以得出结论:

注解方式实现IOC - id推断规则:

1.如果手动指定过id: 则采用指定id 如果没有手动指定过id 则通过类名自动推断id

2.如果没有手动指定过id:看类名的第二个字母

   2.1如果第二个字母是小写,则类名首字母转小写作为id使用

   2.2如果第二个字母是大写,则类名首字母保持不变作为id使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章