Spring框架学习记录 3 相关API

ApplicationContext 的实现类

(1)ClassPathXmlApplicationContext

        从类的根路径下加载配置文件

(2)FileSystemXmlApplicationContext

        从磁盘任意路径加载配置文件

(3)AnnotationConfigApplicationContext

        当使用注解配置容器对象时,需要使用此类来创建 Spring 容器,用来读取注解


getBean() 方法

(1)传入指定 bean 的 id 字符串

public Object getBean(String name) throws BeansException {
    this.assertBeanFactoryActive();
    return this.getBeanFactory().getBean(name);
}

通过传入在 xml 文件中配置的指定 bean 的 id 字符串来获取 bean 的实例,这也是前文中一直使用的方法,不再赘述 

ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) app.getBean("userService");

(2)传入一个 Class 对象

public <T> T getBean(Class<T> requiredType) throws BeansException {
    this.assertBeanFactoryActive();
    return this.getBeanFactory().getBean(requiredType);
}

UserService.class 为 UserService 类的 Class 对象,这种写法不需要对 getBean() 的结果进行强转

ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = app.getBean(UserService.class);

需要注意的是,当 xml 配置文件中配置了两个相同类型但 id 不同的 bean ,使用这种方法会出现错误

<bean id="userService1" class="Service.Implement.UserServiceImple">
    <constructor-arg name="userDao" ref="userDao"/>
</bean>

<bean id="userService2" class="Service.Implement.UserServiceImple">
    <constructor-arg name="userDao" ref="userDao"/>
</bean>

猜你喜欢

转载自blog.csdn.net/qq_25274377/article/details/120255945
今日推荐