目录
任务描述
本关任务:使用Spring
封装的容器加载对象。
相关知识
简单来说,Spring是一个分层的JavaSE/EE full-stack
(一站式) 轻量级开源框架。它是为了解决企业应用开发的复杂性而创建的,Spring它是使用基本的JavaBean来完成以前只可能由EJB完成的事情。
下面我们一起来学习Spring
框架是如何获取对象的。
使用Spring
封装的容器获取bean
对象
我们可以通过Spring
提供的IOC
容器获取bean
对象,Spring
提供了BeanFactory
和ApplicationContext
二个容器,通常情况都是使用ApplicationContext
。
ApplicationContext
有二个主要实现类:
ClassPathXmlApplicationContext:从类路径下加载配置文件
FileSystemXmlApplicationContext:从文件系统中加载配置文件
一般我们使用ClassPathXmlApplicationContext
比较方便,再调用ApplicationContext
的getBean()
方法则可获取对象了:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) applicationContext.getBean("user");
}
applicationContext.xml
文件配置如下:
<bean id="user" name="user" class="com.entity.User"></bean>
<!--注意:class路径必须为类的全路径-->
- 配置
bean
时id
和name
的区别
id
约束保证这个属性的值是唯一的,而且必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号。name
没有这些要求。如果bean
标签上没有配置id
,那么name
可以作为id
。
编程要求
根据提示,在右侧编辑器补充代码,使用Spring
提供的容器调用Car
类run()
方法,在右侧文件夹中可查看Car
类。
测试说明
平台会对你编写的代码进行测试:
预期输出:开车了,滴滴滴~
提示:配置文件为applicationContext1.xml
,可在右侧文件夹中查看。
开始你的任务吧,祝你成功!
参考答案
package step1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Task {
public void getCar(){
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext1.xml");
Car car = (Car)app.getBean("car");
car.run();
}
}