表现层中通过调用配置文件来创建对象
代码
public static void main(String[] args) {
//1.获取核心容器对象
//ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");(更常用)
ApplicationContext ac = new FileSystemXmlApplicationContext("D:\\ideaworkplace\\200413spring02\\src\\main\\resources\\bean.xml");
//2.根据id获取bean对象
IAccountService as = (IAccountService)ac.getBean("accountService");
IAccountDao adao = ac.getBean("accountDao",IAccountDao.class);
System.out.println(as);
System.out.println(adao);
}
详细问题
容器:可理解成生成对象的工具。
Spring的核心容器的接口目前学到两种:一是不常用的BeanFactory,二是前者的派生类ApplicationContext。后者比前者多了许多更实用的功能。
两个接口的主要区别:
ApplicationContext:在调用该接口构建核心容器时,核心容器内的对象被立即创建。
BeanFactory:在调用该接口构建核心容器时,核心容器内的对象延时创建。(延时是指在运行到通过id获取bean对象的时候才创建该对象。)
ApplicationContext的三个常用实现类
ClassPathXmlApplicationContext:加载类路径下的配置文件,要求配置文件在类路径下。
FileSystemXmlApplicationContext:加载磁盘任意路径下的配置文件。(必须有该文件夹的访问权限)
上面这两种建议使用ClassPath,具体原因个人理解为方便后面项目的打包或者上传到Git。
AnnotationConfigApplicationContext:读取注解创建的容器。(应该挺重要的,在项目里看到很多地方有注解这个东西,后面学到了再进行补充)