共有三个常用实现类:
-
ClassPathXmlApplicationContext
它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。(更常用)
// 获取核心容器对象 ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
-
FileSystemXmlApplicationContext
它可以加载磁盘任意路径下的配置文件(必须有访问权限)
// 获取核心容器对象 ApplicationContext ac = new FileSystemXmlApplicationContext("D:\\...\\bean.xml");
-
AnnotationConfigApplicationContext
它是用于读取注解创建容器的
代码:
package cn.luis.ui;
import cn.luis.dao.IAccountDao;
import cn.luis.service.IAccountService;
import cn.luis.service.impl.AccountServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @Description 模拟一个表现层,用于调用业务层
* 获取spring的Ioc核心容器,并根据id获取对象
* 读取配置文件、创建对象并存入容器的任务都交给Spring
* 我们只需创建编写配置文件配置、获取核心容器对象、再根据唯一标志(id)取出对象来使用即可。
**/
public class Client {
public static void main(String[] args) {
// 1.获取核心容器对象 [读取配置文件]
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
//ApplicationContext ac = new FileSystemXmlApplicationContext("D:\\...\\bean.xml");
// 2.根据id获取Bean对象 (两种写法都可以)
IAccountService as = (IAccountService) ac.getBean("accountService");
IAccountDao ad = ac.getBean("accountDao",IAccountDao.class);
System.out.println(as);
System.out.println(ad);
}
}