从IOC容器获取Bean & name和id的区别
两种方式,推荐使用第一种
public class SpringApplication {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Apple apple4 = context.getBean("apple4", Apple.class);
System.out.println(apple4.getTitle());
Apple apple3 = (Apple) context.getBean("apple3");
System.out.println(apple3.getOrigin());
}
}
id和name的相同点:
1.都是设置对象在IOC容器中的唯一标识
2.两者在同一配置文件中都不允许出现重复
3.两者允许在多个配置文件中出现重复,新对象覆盖旧对象
4.都要使用驼峰命名法
id和name的区别:
1.id一次只能定义一个对象标识,推荐使用id
2.name一次能定义多个对象标识
当一个bean既没有id也没有name时,使用类名全称作为bean标识
<bean class="com.example.s02.ioc.entity.Apple">
<constructor-arg name="title" value="红富士">constructor-arg>
<constructor-arg name="color" value="红色">constructor-arg>
<constructor-arg name="origin" value="欧洲">constructor-arg>
<constructor-arg name="price" value="18.5">constructor-arg>
bean>
public class SpringApplication {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Apple apple = context.getBean("com.example.s02.ioc.entity.Apple", Apple.class);
System.out.println(apple);
}
}