SSM框架-获取容器的方式
创始人
2024-03-24 15:19:30
0

9 容器

9.1 获取容器

  1. 记载类路径下的容器所在的配置文件,也就是之前用的
public class App2 {public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");BookDao bookDao = (BookDao) ctx.getBean("bookDao");bookDao.save();}
}
  1. 使用文件的绝对位置,少用
        //2. 使用文件的绝对位置,哪个盘符下进行加载ApplicationContext ctx2 = new FileSystemXmlApplicationContext("C:\\Users\\CZyue\\Desktop\\javaSE\\10-ssm\\spring_10_container\\spring_10_container\\src\\main\\resources\\applicationContext.xml");BookDao bookDao = (BookDao) ctx2.getBean("bookDao");bookDao.save();
  1. 总结

在这里插入图片描述

9.2 获取bean

  1. 通过强转类型
        //1.1获取bean,通过强转类型BookDao bookDao = (BookDao) ctx.getBean("bookDao");bookDao.save();
  1. 第二个参数指定类型
        BookDao bookDao = ctx.getBean("bookDao", BookDao.class);bookDao.save();
  1. 按照类型找
        //1.3 按照类型找,要求容器中只有一个就好,不然找不到BookDao bookDao = ctx.getBean(BookDao.class);bookDao.save();
  1. 总结

在这里插入图片描述

9.3 容器类层次结构

  1. ApplicationContext,ConfigurableApplicationContext接口
  • ApplicationContext接口提供了基础功能,ConfigurableApplicationContext接口对ApplicationContext接口实现了功能的追加

  • ClassPathXmlApplicationContext和FileSystemXmlApplicationContext是两个常用的实现类

  • ApplicationContext接口的上层接口是BeanFactory

在这里插入图片描述

在这里插入图片描述

  1. 容器类结构图

在这里插入图片描述

BeanFactory是顶层接口

ApplicationContext常用接口

ConfigurableApplicationContext关闭容器的

ClassPathXmlApplicationContext是常用实现类:

ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);

9.4 BeanFactory

在这里插入图片描述

  1. 代码
  • AppForBeanFactory

BeanFactory来获取容器,通过ClassPathResource来造resources,然后把xml传进去

public class AppForBeanFactory {public static void main(String[] args) {Resource resources = new ClassPathResource("applicationContext.xml");BeanFactory bf = new XmlBeanFactory(resources);BookDao bookDao = bf.getBean(BookDao.class);bookDao.save();}
}
  1. 和ApplicationContext获取容器的区别

加载bean的时机不同

  • 接口实现类BookDaoImpl写一个构造器
public class BookDaoImpl implements BookDao{public BookDaoImpl(){System.out.println("constructor");
}public void save(){System.out.println("book dao save");}
}
  • 用BeanFactory获取bean
public class AppForBeanFactory {public static void main(String[] args) {Resource resources = new ClassPathResource("applicationContext.xml");BeanFactory bf = new XmlBeanFactory(resources);}
}
  • 结果
Process finished with exit code 0
  • 用ApplicationContext获取bean
public class App2 {public static void main(String[] args) {//1.记载类路径下的配置文件ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");}
}
  • 结果

ApplicationContext初始化会提前加载

constructorProcess finished with exit code 0

如果要延迟,可以在appliacation.xnl中延迟加载

    

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...