Spring基础知识(二)

news2024/9/25 13:23:32

目录

1.Spring Bean是什么

2.Spring提供的配置方式

3.Spring bean中的scope

4.Spring bean容器的生命周期

5.Spring的内部bean

6.Spring装配是什么

7.自动装配模式

8.自动装配的局限性

9.基于注解配置容器

10.如何启动注解装配


1.Spring Bean是什么

Spring官方文档对于bean的解释为:

In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container.

翻译过来就是:在Spring中,形成你的应用程序的主干,并且被Spring IoC容器管理的对象叫做bean;一个bean就是被Spring IoC容器实例化、装配并且管理的对象。
 

2.Spring提供的配置方式

基于xml配置

        在xml文件中设置<bean>标签来配置

基于注解配置

        在类或方法上使用注解进行配置

基于Java API配置

        使用@Bean和@Configuration实现

3.Spring bean中的scope

Spring bean支持五种scope:

Singleton:Spring IoC仅有一个单实例

Prototype:每次请求都会产生一个新的实例

Request:每次Http请求都会产生一个新实例,该bean仅在当前Http请求内有效

Session:每次Http请求都会产生一个新的bean,该bean仅在当前Http session中有效

Global-session:仅在 全局portlet Session的生命周期范围内有效

4.Spring bean容器的生命周期

* 第一步:实例化

    * 通过反射/工厂模式

* 第二步:依赖注入:即为属性赋值

* 第三步:初始化:需要自定义init_method

* 第四步:销毁:需要自定义destroy_method

    * 要想销毁,需要使用configurable ApplicationContext才能调用close

    * configurableApplicationContext是ApplicationContext的子接口,其中扩展了刷新和关闭容器的方法
补充:在生命周期初始化前后,后置处理器会添加额外的操作;此时在ioc容器中配置后,会对每一个bean起作用(了解)

5.Spring的内部bean

        将一个bean A 作为另一个bean B 的属性时,该bean A 被成称为内部bean

6.Spring装配是什么

        装配即将bean在Spring容器中组合在一起

        前提:Spring容器知道需要什么bean以及容器如何使用依赖注入将bean绑定,同时装配bean

7.自动装配模式

        no:默认设置;表示没有自动装配

        byName:根据bean的名称注入对象的依赖项;匹配并装配属性和xml文件中相同名称定义的bean

        byType:根据类型注入对象依赖项;属性的类型和xml文件中的bean名称匹配则装配属性

详细自动装配模式见:

Spring的重点知识_perseveregz的博客-CSDN博客

 

8.自动装配的局限性

        1.基本元数据类型(字符串、类)无法自动装配

        2.自动装配可能不太精确

9.基于注解配置容器

        将类标注为@Configuration,将类中的方法标注为@Bean,从而将类配置到到容器中

10.如何启动注解装配

        默认情况下,Spring容器中没有打开注解装配;需要配置<context:annotation-config/>

<beans>
    <context:annotation-config/>
    <!-- bean definitions go here -->
</beans>

        

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lua的用户数据的使用与c语言交互

什么是用户数据 在 Lua 中&#xff0c;用户数据&#xff08;userdata&#xff09;是一种特殊的数据类型&#xff0c;它可以用来表示外部的 C 或 C 对象&#xff0c;并将它们传递给 Lua 程序使用。用户数据是 Lua 与其他语言或系统进行交互的主要方式之一&#xff0c;它可以让 …

选择排序代码

时间复杂度O&#xff08;n&#xff09;

《离散数学》:特殊的图

〇、前言 这一节会重点讨论一下一些特殊的图&#xff0c;这些图会解决一些特殊的问题。 一、欧拉图 给定无向连通图 G&#xff0c;若存在一条路经过 G 中每边一次且仅一次&#xff0c;则该路为欧拉路。若存在一条回路经过 G 中每边一次且仅一次&#xff0c;则该回路称为欧拉…

LVM管理linux

1. lvm的应用场景及其弊端 应用场景&#xff1a; 随着公司的发展&#xff0c;数据增长较快&#xff0c;最初规划的磁盘容量不够用了 弊端&#xff1a; 数据不是直接存放在硬盘上&#xff0c;而是在硬盘的上面又虚拟出来一层逻辑卷存放数据&#xff0c;故而增加了磁盘数据恢复的…

Web3 将 MetaMask添加入谷歌浏览器 扩展程序中

Web3到现在理论这段是说的有点太多了 那么 我们先来看个东西 叫 MetaMask 这个在我们项目开发过程中需要使用 MetaMask是一个开源的以太坊的一个钱包 那么 钱包肯定就是用来管理数据资产的 MetaMask 是以一个浏览器插件形式存在的 它可以直接连接到以太坊的网络中来管理我们…

冒泡排序代码

时间复杂度O&#xff08;n&#xff09;

03_Linux设备树与设备树语法

目录 什么是设备树 DTS、DTB和DTC DTS语法 dtsi头文件 设备节点 标准属性 compatible属性 model属性 status属性 #address-cells和#size-cells属性 reg属性 ranges属性 name属性 device_type属性 根节点compatible属性 使用设备树之前设备匹配方法 使用设备树以…

K8S之 metrics-server 组件(十八)

首先下载&#xff1a;K8S之 metrics-server 组件 metrics-server 是一个集群范围内的资源数据集和工具&#xff0c;同样的&#xff0c;metrics-server 也只是显示数据&#xff0c;并不提供数据存储服务&#xff0c;主要关注的是资源度量 API 的实现&#xff0c;比如 CPU、…

重塑癌细胞嚣张形象!《自然》重磅论文显示,癌细胞不仅懒还很节俭

▎药明康德内容团队编辑 在我们的印象中&#xff0c;癌细胞都是身体内失去控制的猛兽&#xff0c;它们会疯狂地复制、转移&#xff0c;形成巨大的肿瘤。因此过去很长一段时间内我们都认为肿瘤是一个对资源极度贪婪的群体&#xff0c;比如一百年前&#xff0c;生理学家就发现癌…

vue2.6源码学习:数据变化监听原理之数据驱动视图(observer)

上次我们看vue2.6源码的时候&#xff0c;大概看了一下整体的项目结构目录。主要是里面的Observer和vdom这两个文件夹。 也是vue里面最核心的两个文件夹&#xff0c;今天我们继续来学习。 instance文件夹是用来做什么的 这个也是vue比较核心的一块&#xff0c;这个是与vuejs实例…

UVM中uvm_config_db机制背后的大功臣

1. 前言 本次讲一下UVM中的uvm_config_db&#xff0c;在UVM中提供了一个内部数据库&#xff0c;可以在其中存储给定名称下的值&#xff0c;之后可以由其它TB组件去检索。这样的数据库允许我们以不同的名称存储不同的配置设置&#xff0c;这些配置可以在需要时潜在地配置TB组件…

spring.session 随笔0 集成设计

0. 上个月划水时间关注的&#xff0c;最近断断续续的了解了一些 RUNOOB redis命令:APPEND 整合shiro实现分布式session同步(定制cacheManager) 我想想&#xff0c;还是照自己思绪发散的顺序开始描述这块的内容吧&#xff0c;可能侧重点有些奇怪。 由于工程使用的spring.boot.…

树莓派+Docker+cpolar(内网穿透)+Nignx

首先安装Raspberry Pi Imager&#xff0c;用于给SD卡安装系统镜像。 使用Raspberry Pi Imager&#xff08;树莓派镜像烧录器&#xff09;烧录镜像文件到SD中&#xff0c;操作步骤如下图所示&#xff1a; docker安装nginx提供web服务 获取最新版本的docker安装包&#xff1a; su…

linux上启动两个nginx实例

一台机器上启动两个nginx实例&#xff0c;主要是端口冲突问题&#xff0c;另外&#xff0c;如果一个是通过编译安装&#xff0c;另一个是拷贝的&#xff0c;那么还需要修改静态文件根路径。 这里&#xff0c;我第一个nginx是通过源码编译安装&#xff0c;安装目录是默认的/usr/…

live555交叉编译

下载live555最新源码&#xff1a;http://www.live555.com/liveMedia/public/live555-latest.tar.gz 如果是要下载具体的live555版本&#xff0c;比如2023.06.14发布的版本&#xff0c;则可以浏览器输入&#xff1a;http://www.live555.com/liveMedia/public/live.2023.06.14.t…

GPT 模型的工作原理 你知道吗?

动动发财的小手&#xff0c;点个赞吧&#xff01; Source[1] 简介 当我使用 GPT 模型编写我的前几行代码时是 2021 年&#xff0c;那一刻我意识到文本生成已经到了一个拐点。在此之前&#xff0c;我在研究生院从头开始编写语言模型&#xff0c;并且我有使用其他文本生成系统的经…

GPT-4满分通过MIT本科数学考试这套提示词火了

万万想不到啊&#xff0c;MIT数学考试&#xff0c;被GPT-4攻破了&#xff1f;&#xff01; 突然有人在最新论文工作中高调宣布&#xff1a; GPT-4在MIT的数学和EECS&#xff08;电气工程和计算机科学系&#xff09;本科学位考试中&#xff0c;表现出的能力完全满足毕业要求。…

图解左连接、右连接、内连接、全连接(小白入门)

目录 一、七种连接情况二、左连接具体例子&#xff1a;力扣数据库题目 175. 组合两个表答案1. 连接条件为&#xff1a;on Person.PersonId Address.personId2. 连接条件为&#xff1a;on Person.PersonId ! Address.personId 三、左连接不包含内连接四、右连接五、右连接不包含…

利用腾讯云函数隐藏C2服务器

1、简介 腾讯云函数&#xff0c;可以为企业和开发者提供无服务器执行环境&#xff0c;无需购买和管理服务器&#xff0c;只需要在腾讯云上使用平台支持的语言编写核心代码并设置代码运行的条件&#xff0c;即可在腾讯云基础设施上弹性 安全地运行代码。 C2服务器所有流量通过腾…

CSS入门(网络安全方向)——id与class

CSS (Cascading Style Sheets&#xff0c;层叠样式表&#xff09;&#xff0c;是一种用来为结构化文档&#xff08;如 HTML 文档或 XML 应用&#xff09;添加样式&#xff08;字体、间距和颜色等&#xff09;的计算机语言&#xff0c;CSS 文件扩展名为 .css。 通过使用 CSS 我…