Spring容器技术

简介: Spring容器技术

1. Spring核心容器介绍


问题导入


问题:按照Bean名称获取Bean有什么弊端,按照Bean类型获取Bean有什么弊端?


1.1 创建容器


方式一:类路径加载配置文件


ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");


方式二:文件路径加载配置文件


ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");


加载多个配置文件


ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml", "bean2.xml");



1.2 获取bean对象


方式一:使用bean名称获取

弊端:需要自己强制类型转换


BookDao bookDao = (BookDao) ctx.getBean("bookDao");


方式二:使用bean名称获取并指定类型

推荐使用


BookDao bookDao = ctx.getBean("bookDao", BookDao.class);


方式三:使用bean类型获取

弊端:如果IOC容器中同类型的Bean对象有多个,此处获取会报错


BookDao bookDao = ctx.getBean(BookDao.class);


1.3 容器类层次结构


7f993ad00cdd938253ff81571a377027_2a55d864c8a0accb1c286efc4948510a.png


1.4 BeanFactory


类路径加载配置文件


Resource resources = new ClassPathResource("applicationContext.xml");
BeanFactory bf = new XmlBeanFactory(resources);
BookDao bookDao = bf.getBean("bookDao", BookDao.class);
bookDao.save();

BeanFactory创建完毕后,所有的Bean均为延迟加载,也就是说我们调用getBean()方法获取Bean对象时才创建Bean对象并返回给我们


2. Spring核心容器总结


2.1 容器相关


BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载

ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载

ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能

ApplicationContext接口常用初始化类

ClassPathXmlApplicationContext(常用)

FileSystemXmlApplicationContext


2.2 bean相关


dfbcc2265507dac4e2734b2f71a0f2f3_104591b413363ee032f47a4de5d0e68f.png


2.3 依赖注入相关


87bf50667a4c65237cc568c4241ee4b8_6e4a28b97a8035f25bfb254c4fb3af1b.png

相关文章
|
1天前
|
运维 Kubernetes 测试技术
容器技术:优化软件测试流程的利器
本文介绍了容器技术的概念、优势和历史发展,对比了容器与虚拟机的区别,并提及了Docker和Kubernetes等常见容器技术。容器作为轻量级虚拟化工具,提供高效、灵活的应用部署方式,广泛应用于软件开发、云计算和微服务架构。随着技术演进,容器将在边缘计算、人工智能等领域发挥更大作用,推动行业变革。
14 3
|
1天前
|
运维 监控 Kubernetes
构建高效自动化运维体系:基于容器技术的持续集成与持续部署(CI/CD)实践
【5月更文挑战第15天】 随着云计算和微服务架构的普及,传统的IT运维模式面临转型压力。为提高软件交付效率并降低运维成本,本文探讨了利用容器技术实现自动化运维的有效策略。重点分析了在持续集成(CI)和持续部署(CD)流程中,容器如何发挥作用,以及它们如何帮助组织实现敏捷性和弹性。通过具体案例研究,文章展示了容器化技术在自动化测试、部署及扩展中的应用,并讨论了其对系统稳定性和安全性的影响。
|
1天前
|
运维 监控 安全
构建高效自动化运维系统:基于容器技术的持续集成与持续部署(CI/CD)实践
【5月更文挑战第14天】 随着DevOps文化的深入人心,持续集成与持续部署(CI/CD)已成为现代软件工程不可或缺的组成部分。本文将探讨如何利用容器技术,尤其是Docker和Kubernetes,构建一个高效、可扩展的自动化运维系统。通过深入分析CI/CD流程的关键组件,我们将讨论如何整合这些组件以实现代码从提交到生产环境的快速、无缝过渡。文章还将涉及监控、日志管理以及安全性策略等运维考量,为读者提供一个全面的自动化运维解决方案蓝图。
|
1天前
|
Kubernetes Devops Docker
构建高效稳定的云基础设施:DevOps与容器技术的融合
【5月更文挑战第14天】 在当今快速发展的软件行业中,持续集成、持续部署(CI/CD)和微服务架构已成为提高软件交付速度和质量的关键。本文将探讨如何通过结合DevOps理念和容器技术,构建一个高效、稳定且可扩展的云基础设施。我们将深入分析Docker和Kubernetes在这一过程中的核心作用,以及它们如何帮助实现自动化运维和微服务管理,从而推动企业IT运营的现代化。
|
1天前
|
运维 Kubernetes Devops
构建高效稳定的云基础设施:DevOps与容器技术的融合
【5月更文挑战第14天】 在当今快速发展的云计算时代,企业和组织面临着不断变化的市场需求和技术挑战。为了保持竞争力,越来越多的企业转向DevOps实践和容器技术来构建高效、灵活且稳定的云基础设施。本文将探讨如何通过整合DevOps文化和容器化技术,实现自动化运维流程,提高部署速度,减少系统故障,并确保可扩展性和高可用性。我们将分析实际案例,展示这种融合如何在现实世界中为企业带来显著的业务价值。
8 0
|
1天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与部署实践
【5月更文挑战第13天】 在现代软件开发周期中,持续集成(CI)和持续部署(CD)已成为提升开发效率、保障产品质量的关键环节。随着云计算和微服务架构的普及,容器技术如Docker和Kubernetes为运维领域带来了革命性的变革。本文旨在探讨如何利用容器技术构建一个高效、可靠的自动化运维体系,实现从代码提交到产品发布的全过程自动化管理。通过深入分析容器化技术的核心原理,结合实际案例,我们将阐述如何优化持续集成流程、确保自动化测试的覆盖率、以及实现无缝的持续部署。
19 2
|
1天前
|
运维 Kubernetes Devops
构建高效稳定的云基础设施:DevOps与容器技术的结合
【5月更文挑战第12天】 在当今快速发展的信息技术时代,企业需要灵活、快速地响应市场变化并持续交付高质量的软件产品。本文将探讨如何通过结合DevOps文化和容器技术来构建一个高效且稳定的云基础设施。我们将讨论DevOps的核心概念及其如何加速开发周期,以及容器技术如Docker和Kubernetes如何提供一致性、可移植性和扩展性。最后,文章将介绍实际案例,展示这种结合如何在现代运维实践中实现自动化部署、持续集成和微服务架构管理。
|
1天前
|
Kubernetes Java 调度
Java容器技术:Docker与Kubernetes
Java容器技术:Docker与Kubernetes
19 0
|
1天前
|
敏捷开发 运维 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。自动化运维作为提升效率、确保稳定性的关键手段,其重要性不言而喻。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现从代码提交到产品上线的持续集成(CI)与持续部署(CD)。通过分析现代容器技术与传统虚拟化的差异,阐述容器化带来的轻量化、快速部署及易于管理的优势,并结合实例讲解如何在实际环境中搭建起一套完善的CI/CD流程。
|
1天前
|
Linux 开发者 Docker
Docker容器化技术详解
【4月更文挑战第30天】Docker,一个开源的容器化平台,助力开发者通过轻量级容器打包应用及依赖,实现跨平台快速部署。核心概念包括:容器(可执行的软件包)、镜像(只读模板)、Dockerfile(构建镜像的指令文件)和仓库(存储镜像的地方)。Docker利用Linux内核功能隔离容器,采用联合文件系统构建镜像。广泛应用包括开发测试一致性、微服务部署、CI/CD以及本地到远程部署。通过安装Docker,编写Dockerfile,构建&运行容器,可实现高效灵活的应用管理。随着容器技术进步,Docker在云计算和DevOps中的角色日益重要。

热门文章

最新文章