======== Bean别名 ======== 在工厂配置文件中,可以通过bean标签的name属性为Bean设置别名。 /src/main/resources/applicationContext.xml: ... ... \____________/ | Bean的三个别名 /src/test/java/cn/tedu/hellospring/StudentTest.java: class StudentTest { ... @org.junit.jupiter.api.Test void test8() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/applicationContext.xml"); Student student = (Student) applicationContext.getBean( /*"stu"*//*"st"*/"s"); System.out.println(student); } ... } id和name: - 都可以作为工厂方法getBean()的参数,用于获取Bean对象 - name可以替代id - 一个Bean可以同时拥有多个别名,但ID只能有一个 - id属性的值必须是以字母开头的,由字母、数字或连字符组成的字符序列 - name属性的值可以是由任意字符组成的序列,可用于某些特殊的命名场景 - 比如某些环境可能要求Bean的名字必须以“/”开头 // 错误 // 正确 - 现代XML对id属性值的限制已经不存在了 /src/main/resources/applicationContext.xml: ... ... - 优先使用id,name基本用不着 - 判断工厂配置文件中是否包含特定Bean - containsBeanDefinition()方法的参数只能传id - containsBean()方法的参数既可以传id也可以传name 例程:HelloSpring