寒假学习(6)

Spring 容器
Spring 容器主要的功能是负责创建、配置、管理Bean的生命周期。它提供了以下功能:
1.IoC(控制反转):Spring 容器通过控制对象的创建和依赖注入来实现“反转控制”,即对象不再自己管理依赖的对象,而是由容器来提供依赖。
2.DI(依赖注入):通过构造器、setter 或字段注入等方式,将对象的依赖自动注入到目标对象中。
3.生命周期管理:Spring 容器负责管理 Bean 的创建、初始化、销毁等生命周期操作。

Spring 容器的实现
BeanFactory:是最基本的容器,它提供了最基本的功能,如加载 Bean 配置文件,管理 Bean 的创建与销毁等。
ApplicationContext:是 BeanFactory 的子接口,提供了更多的功能和扩展

Spring 容器的工作流程
1.加载配置:容器从指定的配置源(XML文件、注解类或Java配置类)中读取配置信息。2.创建 Bean:容器根据配置创建 Java 对象(Bean)。
3.依赖注入:容器将所需的依赖注入到每个 Bean 中。
4.初始化 Bean:容器根据配置调用 Bean 的初始化方法。
5.销毁 Bean:容器在应用关闭时销毁 Bean。

Spring 容器的配置方式
基于 XML 的配置

<!-- spring-config.xml -->
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 定义一个 Bean --><bean id="car" class="com.example.Car"><property name="engine" ref="engine"/></bean><bean id="engine" class="com.example.Engine"/></beans>

基于注解的配置

@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {// Spring 容器会自动扫描指定包下的类并创建 Bean
}@Component
public class Car {private Engine engine;@Autowiredpublic Car(Engine engine) {this.engine = engine;}
}@Component
public class Engine {public void start() {System.out.println("Engine starting...");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/878809.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 山东一轮省集组合计数选讲学习笔记

https://www.luogu.com/article/hcy6mqry 初等双射 通常的方法是构造一个不会映射到自己的对合,这样就就可以把所有的组合对象分为数量相等的两类。 还有一种方法就是给等式两边找到一个相同的组合意义,以证明他们相等,这个不一定是一个映射,它允许“一对多”“多对一”。 …

TCP和UDP协定的基础知识解析,从网路效能到网路安全看TCP、UDP协议

TCP和UDP协定的基础知识解析,从网路效能到网路安全看TCP、UDP协议TCP和UDP协定是网路通讯中不可或缺的基础。 TCP以其可靠性著称,能够确保资料完整传输,适合文件传输和邮件服务等场景。它透过建立连接和确认机制,提供稳定的通讯体验。相比之下,UDP更注重速度和即时性。它无…

小程序学习2.4

阅读文档观看视频属性小程序开发内容

Windows下本地部署deepseek

如果你对DS有深度使用需要,且电脑配置不错,那就本地部署deepseek试试吧。 1、下载并安装Ollama Ollama是一个开源的 LLM(大型语言模型)服务工具(就是大模型运行工具),用于简化在本地运行大语言模型,降低使用大语言模型的门槛,使得大模型的开发者、研究人员和爱好者能够…

使用 FFmpeg命令 通过 RTMP 协议推送本地视频

背景:有时候想模拟一下往流媒体服务器推流,就可以使用强大的ffmpeg这个工具来模拟推流了。 使用也很简单,一条命令即可将本地视频通过rtmp协议推送到流媒体服务器了。 命令如下: ffmpeg -re -i [本地mp4文件路径] -c:a aac -ar 44100 -f flvrtmp://your-server/your-applic…

黑天鹅

流光忆庭的忆者,慵懒神秘的占卜师。 耐心聆听「记忆」,诸般命运尽在掌握。

镜流

曾经的罗浮剑首,云骑军不败盛名的缔造者。 而今其名已被抹去,成为行于魔阴边缘的仙舟叛徒。

真理医生

「我甚至无法和一个蠢材解释何为『蠢材』。」 直率而自我的博识学会学者,常以奇怪的石膏头雕遮蔽面容。 自幼便展露出过人的才智,如今却以「庸人」自居。 坚信智慧与创造力并不为天才独有,致力于向全宇宙传播知识,医治名为愚钝的顽疾。

九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)

九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位) @目录九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)1. RDB 概述2. RDB 持久化执行流程3. RDB 的详细配置4. RDB 备份&恢复5. RDB 持久化小结(优势 和 劣势)6. 最后:R…

一次性讲清楚INNER JOIN、LEFT JOIN、RIGHT JOIN的区别和用法详解

INNER JOIN、LEFT JOIN、RIGHT JOIN的区别接下来通过例子帮助理解他们之间的区别 首先,我们创建示例数据库和表。同时也要明确一个概念:A INNER/LEFT/RIGHT JOIN B操作中,A表被称为左表,B表被称为右表。 创建示例数据库school,在数据库school下创建两张示例表:student、p…

多项式全家桶【长期更新】

目录多项式定义(表达式)暴力全家桶加法乘法余数除法求导和积分求逆开根求对数求指数求三角函数快速傅里叶变换FFT,快速多项式前置内容FFT核心思路具体做法常数优化:非递归FFT 多项式 定义(表达式) 定义一个 \(n\) 次的多项式为: \[F(x) = \sum^n_{i=0}f_ix^i \]注意 :\(…