Spring_Bean

devtools/2024/9/20 3:53:17/ 标签: spring, java, 后端, bean

概述

bean是一种特殊的Java类

  • 具有私有属性和公共getter和setter方法
  • 实现了可序列化接口
  • 具有无参构造函数

简单来说,bean就是一个类对象

在Spring中,bean是由Spring的IOC容器进行管理的,IOC容器中存放的就是一个个Bean对象

内容

id:使用容器可以通过id获取对应的bean,在容器中id值唯一

name:别名,可以有多个,使用逗号、分号、空格进行分割

class:bean的类型,即配置bean的全路径类名

property:bean的属性,可以理解为一个类中声明的属性

value:类型为基本类型的property赋值

ref:类型为引用类型的property赋值(该值必须在容器中存在

scope:作用范围(一般为单例singleton、prototype非单例)(默认单例)

注解声明

  • @Component

    注解用于将一个类标识为组件(Component)。它是通用的注解,表示一个普通的Spring组件

  • @Repository

    该注解用于将一个类标识为数据访问层组件(Repository)。通常用于与数据库交互的类,封装了数据访问逻辑。被 @Repository 注解标记的类通常配合其他注解如 @Autowired 进行依赖注入,提供持久化数据的操作。

  • @Controller:该注解用于将一个类标识为控制器层组件

    通常用于接收请求、处理业务逻辑,并返回视图或数据给客户端。

    @Controller 注解标记的类可以通过 @RequestMapping 或其他相关注解定义请求映射和处理方法。

  • @Service:该注解用于将一个类标识为服务层组件(Service)。

    通常用于实现业务逻辑的类,可以封装具体的业务操作。

    @Service 注解标记的类通常与 @Repository 注解标记的类配合使用,通过依赖注入调用数据访问层的方法,提供业务服务。

  • @Configuration:该注解用于将一个类标识为配置类

    • 在该Config类上使用@ImportResource("classpath:xxx.xml") 可将xml文件中的bean注入Spring的IOC容器中

    配置类通常用于定义 Bean 的创建和配置,可以包含方法级别的 Bean 定义,通过在方法上使用 @Bean 注解。

    • 可配合其他注解一起使用:

    • @Profile:区分不同环境下的Bean,示例:@Profile("!dev") 非开发环境可用

    • @Scope:设置singleton和prototype

    • @Lazy:懒加载,使用时再创建

    @Configuration 注解标记的类可以通过 @ComponentScan@Import 注解引入到 Spring 容器中。

注解注入

  • @Resource:默认按照名称进行依赖注入,名称找不到再按照类型进行依赖注入
    • 可以添加name属性指定依赖的名称
  • @Autowired:默认按照类型进行依赖注入
    • @Qualifier:配合@Autowired使用,用于指定依赖的名称

http://www.ppmy.cn/devtools/55620.html

相关文章

Java三层框架的解析

引言:欢迎各位点击收看本篇博客,在历经很多的艰辛,我也是成功由小白浅浅进入了入门行列,也是收货到很多的知识,每次看黑马的JavaWeb课程视频,才使一个小菜鸡见识到了Java前后端是如何进行交互访问的&#x…

突发!OpenAI停止不支持国家API,7月9日开始执行

6月25日凌晨,有部分开发者收到了OpenAI的信,“根据数据显示,你的组织有来自OpenAl目前不支持的地区的API流量。从7月9日起,将采取额外措施,停止来自不在OpenAI支持的国家、地区名单上的API使用。” 但这位网友表示&am…

C#面: 能够将非静态的方法覆写成静态方法吗?

在C#中,不能将非静态方法覆写成静态方法。这是因为静态方法是属于类的,而非静态方法是属于类的实例的。覆写(重写)是指在派生类中重新实现基类中的虚方法或抽象方法,以改变其行为。而静态方法是无法被派生类所继承的&a…

【前端面试】理解 JavaScript 中的 Set 和 Map 对象

目录 一、Set 对象1. 基本操作2. 遍历操作3. Set 的特性4. 与数组的互操作 二、Map 对象1. 基本操作2. 遍历操作3. Map 的特性4. 与对象的比较 三、算法题及题解题目:找出数组中的重复元素题目:数组去重题目:统计字符串中每个字符出现的次数题…

“鱼与熊掌兼得专业与学校的权衡” 或 “高考后专业与学校的选择之道”。这两个标题都符合内容,且简洁明了。

引言: 24年的高考帷幕落下,对于每一位考生来说,选择学校和专业无疑是一场重大的决策。分数受限的条件下,“鱼与熊掌不可兼得”,是选择一个心仪的专业还是知名度更高的学校,这是一个困扰了众多考生和家长的长…

upload-labs第14关

upload-labs第14关 第十四关一、源代码分析代码审计 二、绕过分析a. 制作图片码首先需要一个照片,然后其次需要一个eval.php。 b.上传图片码上传成功 c.结合文件包含漏洞进行访问访问:http://192.168.1.110/upload-labs-master/include.php?filehttp://…

python写excel

确保已安装 xlsxwriter: pip install xlsxwriter使用 xlsxwriter 设置特定单元格的背景色: import pandas as pd创建示例 DataFrame df1 pd.DataFrame({A: [1, 2, 3],B: [4, 5, 6] })将 DataFrame 导出到 Excel 使用 xlsxwriter file_path output_…

MongoDB 索引

MongoDB中的索引类型主要包括以下几种: 单字段索引(Single Field Indexes):这是最基本的索引类型,它可以基于集合中的单个字段创建。复合索引(Compound Indexes):复合索引是单字段索…

如何隐藏真实的MAC地址和IP地址,保证多账户的安全?

在计算机网络中,MAC地址(Media Access Control Address)和IP地址(Internet Protocol Address)是两个重要的概念,用于网络设备之间的通信。虽然它们都用于标识设备,但在运作原理和作用上有着明显…

【机器学习】——【线性回归模型】——详细【学习路线】

目录 1. 引言 2. 线性回归理论基础 2.1 线性模型概述 2.2 最小二乘法 3. 数学基础 3.1 矩阵运算 3.2 微积分 3.3 统计学 4. 实现与应用 4.1 使用Scikit-learn实现线性回归 4.2 模型评估 5. 深入理解 5.1 多元线性回归 5.2 特征选择 5.3 理解模型内部 6. 实战与项…

用python工具实现自动检测报表缺失哪些天日期的数据(亲测可用)

目录 代码思路如下: 1、看某张表的所有有数据的日期 2、计算缺失的日期 遇到难点: 1、清空mysql的表 2、报表日期的字段格式五花八门,需要进行统一格式化 完整可用代码如下: 1、表结构 2、python代码 在前面的文章,详细介绍了如果监测mysql或hive当天或当月的表…

微信小程序使用ThreeX开发3d

注意:本代码是用uniapp开发微信小程序,模型使用.glb格式,以下出现(glb模型压缩)代表改代码是使用压缩时需要使用的,不压缩可以不写 Demo:gitee地址 焦明玉/vue2_threex_demo 1.微信小程序后台添加Threex…

深度学习入门2—— 神经网络的组成和3层神经网络的实现

由上一章结尾,我们知道神经网络的一个重要性质是它可以自动地从数据中学习到合适的权重参数。接下来会介绍神经网络的概要,然后再结合手写数字识别案例进行介绍。 1.神经网络概要 1.1从感知机到神经网 我们可以用图来表示神经网络,我们把最…

[C#] opencvsharp对Mat数据进行序列化或者反序列化以及格式化输出

【简要介绍】 在OpenCVSharp中,FileStorage类用于将数据(包括OpenCV的Mat类型数据)序列化为XML或YAML格式的文件,以及从这些文件中反序列化数据。以下是关于FileStorage类用法的详细说明: 写入数据(序列化…

【Docker】容器

目录 1. 容器启动 2. 容器启动/重启/停止 3. 进入容器 4. 容器查询 5. docker 镜像的构建 方式一:docker 容器 commit 方式二:Dockerfile 定制镜像 1. 容器启动 docker run –it/-d –p/P –name imageID/name 2. 容器启动/重启/停止 docker sta…

fc-list命令使用指南

fc-list命令使用指南 一、什么是fc-list? fc-list是FontConfig库的一部分,最初为Linux和其他Unix-like系统开发。我们可以用这个命令行快速查询和列出系统中安装的字体。 现在,Windows用户也集成了这个工具,所以我们来讲解一下用法。 二、…

算力服务先锋!和鲸科技入选《2024中国智算产业生态图谱》

2024 年 6 月 18 日,由科智咨询发起的《2024中国智算产业生态图谱》正式发布,依托 ModelWhale 构建的智算算力资源服务,以及深耕多年的 ModelWhale 数据科学协同平台优势,和鲸科技成功入选。 “智算时代”技术不断进步&#xff0c…

SpringCloudAlibaba组件之间的版本兼容问题

我之前的SpringCloud项目以及使用的组件的版本是这些 但是我不知道具体的版本兼容问题,以及各种组件之间对应的版本 想要使用我们的springcloud和springcloudAlibaba组件,我们就要版本对应,不然就是一堆依赖报错,要不就是缺了这个…

UE5近战对抗系统Tutorial

文章目录 BP_Character 组合攻击Notify State 检测攻击BP_Character 攻击反馈BP_Character 生命系统BP_Character 死亡效果BP_Character 武器系统BP_Enemy 初始化和行为树 BP_Character 组合攻击 首先我们获取攻击动画,在这里使用的是 Easy Combo Buffering 的攻击…

leetcode34:在排序数组中查找元素的第一个和最后一个位置

题目链接&#xff1a;34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {if(nums.empty()) {return {-1, -1};}vector<int> R…