5IoC中获取bean
回到spring导航页
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Apple appleA = context.getBean("appleA",Apple.class);
System.out.println(appleA);
id和name属性相同点
<bean name="apple5" factory-bean="appleInstanceFactory" factory-method="createSweetApple"></bean>
- bean id 和name都是设置对象在IoC容器中唯一标识
- 两者在同一配置文件中都不允许出现重复
- 两者允许在多个配置文件中出现重复重复,新对象覆盖旧对象
id和name属性不同点
- id要求更为严格,一次只能定义一个对象标识(推荐使用id)
- name更为宽松,一次允许定义多个对象标识
- tips:id和name的命名要求有意义,按驼峰命名书写
package com.torey.spring.ioc;
import com.torey.spring.ioc.entity.Apple;
import com.torey.spring.ioc.entity.Child;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringApplication {
public static void main(String[] args) {
String[] configLocations2=new String[]{"classpath:applicationContext2.xml","classpath:applicationContext.xml"};
ApplicationContext context = new ClassPathXmlApplicationContext(configLocations2);
Apple appleA = context.getBean("appleB",Apple.class);
System.out.println(appleA);
}
}
没有id和name的bean
<bean class="com.torey.spring.ioc.entity.Apple">
<constructor-arg name="color" value="黄色b"></constructor-arg>
<constructor-arg name="origin" value="中国b"></constructor-arg>
<constructor-arg name="title" value="金帅b"></constructor-arg>
</bean>
package com.torey.spring.ioc;
import com.torey.spring.ioc.entity.Apple;
import com.torey.spring.ioc.entity.Child;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringApplication {
public static void main(String[] args) {
String[] configLocations2=new String[]{"classpath:applicationContext.xml"};
ApplicationContext context = new ClassPathXmlApplicationContext(configLocations2);
Apple appleA = context.getBean("com.torey.spring.ioc.entity.Apple",Apple.class);
System.out.println(appleA);
}
}
导航,上一页,下一页
4初始化IoC容器
6SpringIoc路径表达式用法
支持我-微信扫一扫-加入微信公众号
赞赏作者