Spring容器|学习笔记

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 快速学习 Spring容器

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术 Spring容器学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15961


Spring容器


spring 的容器是 spring 的核心的部分, spring 容器主要的作用是帮助程序员处理大量的繁琐事务,所以程序员只需要用代码去实现它所关注的业务,而不需要去处理其他的事情。

在 spring 的框架中间,程序员其实是不需要自己去创建对象,同时也不需要去创建对象的关联和建立对象的关联,所有的这些东西都只是需要通过配置的信息告诉

spring 的容器,有 spring 的容器负责去创建对象,去建立对象的关联。

spring 的容器不仅仅会创建对象,而且能建立对象的关联,而且它还能够管理这些

对象的全生命周期,从创建到销毁。

例如说系统的服务层分成了用户服务、运费服务、权限服务以及商品服务四个对象。那知道这四个对象是有相互关联的,比如说权限的服务和用户服务是有人密切的关联的。

然后只需要提供给Spring的容器这四个类的代码,用注解或者配置文件告诉 spring 容器这四个服务之间的关联和关系,那 spring 容器在启动的时候,它就会负责创建好这四个对象,而且把这些对象进行相互的关联,那这样就可以直接从 spring 的容器中间拿到这些对象,而且可以很方便的去使用它。

从刚才可以看到需要用配置信息告诉 spring 的容器如何去创建对象以及如何去建立对象的关联,那当然可以有多种方式去告诉 spring 的容器这些配置信息。在最早期的时候会采用 xml ,xml 的一种配置信息,它的好处在于说它的配置信息跟代码是分离的,是一个放在外部的独立文件,所以说可以直接去修改配置,而不需要去编

译代码。

那当然弊病就是 xm ml 的配置比较繁琐,而且它的配置信息跟代码是分离的,同样也没办法去检查出 xamr 中间配置的错误,只有当序运行到使用配置的这一部分的时候才会发现这个配置的错误,这样对测试其实产生了很大的压力,所以说在后期

主要采用了另外两种方式来告诉 spring 的容器的配置信息。

它就是可以用 JAVA 代码来写配置信息,也可以用注解来写配置信息,那当然知道因为 JAVA 代码和注解是在这个 JAVA 语言中间是可以去分析出,在写代码上就能

分析出它的错误。

所以说在测试的时候也可以用很多工具去判断说测试是否有覆盖到了这部分的代码

或者注解,所以说这是目前来说主流来写配置信息的方式。

那当然用JAVA代码或者用注解来写配置还是会需要写很多的配置,所以在 spring 中间提供了一个 spring Boot ,大量采用了这种默认的配置,减少了这些配置的工作量,所以很多的配置不再需要书写了,可以用 spring Boot 默认方式去指定,然后要写的只是特别的不能用默认去表示的这些配置,同时需要用JAVA代码或者说用注解来告诉 spring 的容器。然后就来看几个简单的用注解告诉  spring 容器的例子,前面说了先要告诉 spring 的容器,说这个类是要有 spring 的容器创建出来的对象。然后可以用注解的方式也可以用代码的方式,那在课上讲解的例子用注解的方式,也就是在类前面加一个注解,那 spring 的容器在读到这样的一个注解的时候,它就知道说这个类是需要创建出来的对象,对象创建出来在 spring 中间是有一个 ID的,ID 当然可以作为一个属性告诉它,但是很多时候都不会去写这个属性,

那它的 ID 就默认为首字母是小写的类名。

现在还有很多其他的名字告诉 spring 的容器这是一个需要创建的对象。比如说对于控制器的对象,因为它是一种很特别的对象,它要负责处理的 request HTTP

response的请求,所以需要在类前面加上一个 controller 的标签来告诉 spring  的容器这是一个控制器的对象。

图片2.png

那对于其他层的对象,其实它就是一个普通的 spring 的对象,比如说服务层的对象,比如说数据存储层的对象,当然可以用 component 来标识说这就是一个spring 的普通的对象,但是为了让代码的可读性更好,spring 的框架提供了service的标签分别用来描述 service 的对象或者数据存储层的对象。

前面说了 spring 的容器是 spring 的最核心的部分,spring 的框架提供了两种容器,分别是 Bean factory 和 application Context,Bean factory 是 spring 框架的最基本的容器,前面说的读取 Bean 对象的配置信息,把这个对象创建出来,把它对的类画出来加载上来,然后把对的 Bean 对象实例画出来,并且维护这些 Bean 对象之间的关联,然后要负责销毁这些Bean 对象,这些事情都是由 Bean factory来完成的,Bean factory 的这个逻辑是第一次访问到一个对象的时候,它才会创建

对象。

在大多数情况下,不会使用 Bean factory 这样的类对象,而会使用 application Context,application Context 是由 Bean factory 派生出来的容器,所以都知道派生的概念,所以 Bean factory 所有具备的特性 application Context 也具备,但是它在 Bean factory 的这些特性的基础上增加了一些高级的功能,比如说 resource source,国际化的这个接口以及 loader,它可以去加载外面资源的接口,比如说还有一些 the published 这样的一些接口,应用事件发布的这些接口,所以说它是在Bean factory 的基础的功能基础上增加了很多面向实际的这些功能,那它与 Bean factory 最大的一个不同是在于说它不是在第一次使用对象创建对象,而是在容器启动的时候就会创建所有的对象,就是在配置定义中间它所有找到的对象都会创建出来。

那这样其实可以有效的提高系统运行的效率,当系统启动的时候可能稍微慢一点,当系统启动起来以后,所有的对象都已经创建出来,所以用的时候就不需要再去花

时间创建对象了,直接就可以使用了。

相关文章
|
14天前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
7天前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
15天前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
159 2
|
7月前
|
监控 Java 应用服务中间件
微服务——SpringBoot使用归纳——为什么学习Spring Boot
本文主要探讨为什么学习Spring Boot。从Spring官方定位来看,Spring Boot旨在快速启动和运行项目,简化配置与编码。其优点包括:1) 良好的基因,继承了Spring框架的优点;2) 简化编码,通过starter依赖减少手动配置;3) 简化配置,采用Java Config方式替代繁琐的XML配置;4) 简化部署,内嵌Tomcat支持一键式启动;5) 简化监控,提供运行期性能参数获取功能。此外,从未来发展趋势看,微服务架构逐渐成为主流,而Spring Boot作为官方推荐技术,与Spring Cloud配合使用,将成为未来发展的重要方向。
230 0
微服务——SpringBoot使用归纳——为什么学习Spring Boot
|
4月前
|
安全 Java 数据库
Spring Boot 框架深入学习示例教程详解
本教程深入讲解Spring Boot框架,先介绍其基础概念与优势,如自动配置、独立运行等。通过搭建项目、配置数据库等步骤展示技术方案,并结合RESTful API开发实例帮助学习。内容涵盖环境搭建、核心组件应用(Spring MVC、Spring Data JPA、Spring Security)及示例项目——在线书店系统,助你掌握Spring Boot开发全流程。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
552 2
|
XML Java 数据格式
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
|
5月前
|
XML Java 数据格式
Spring IoC容器的设计与实现
Spring 是一个功能强大且模块化的 Java 开发框架,其核心架构围绕 IoC 容器、AOP、数据访问与集成、Web 层支持等展开。其中,`BeanFactory` 和 `ApplicationContext` 是 Spring 容器的核心组件,分别定位为基础容器和高级容器,前者提供轻量级的 Bean 管理,后者扩展了事件发布、国际化等功能。
|
6月前
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
159 20
|
8月前
|
XML Java 数据格式
Spring容器的本质
本文主要讨论Spring容器最核心的机制,用最少的代码讲清楚Spring容器的本质。
|
10月前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
300 6