系列十七、各种各样的bean

一、Spring bean

1.1、概述

一句话,被Spring容器管理的bean就是Spring bean。

二、Java bean VS Spring bean

2.1、概述

Java bean是程序员自己new 出来的,Spring bean是Spring工厂创建出来的。

三、配置bean的方式

3.1、概述

  所谓配置bean,是指如何将一个普通的Java类交由Spring容器进行管理。

3.2、配置方式

# 第一种
xml
 
# 第二种
xml + 注解
 
# 第三种
JavaConfig
 
# 第四种
@Import

四、@Component vs @Bean

4.1、概述

        @Component是Spring中的一个注解,通常标识在一个类上面,用于说明该类是被Spring容器管理的,其内部是通过反射机制调用构造方法完成实例化,@Bean也是一个注解,标识在方法上,通常和@Configuration注解搭配使用,其方法名就是bean的name,通过这种方式程序员可以自己控制bean的实例化过程。

4.2、案例

4.2.1、Car

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/26 14:28* @Description:*/
@Component
@Getter
@Setter
public class Car implements Serializable {private String name;private String description;public Car() {System.out.println("Car的无参构造执行了...");}public Car(String name, String description) {this.name = name;this.description = description;System.out.println("Car的有参构造执行了...");}
}

4.2.2、Tank

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/26 14:31* @Description:*/
@ToString
@Getter
@Setter
public class Tank implements Serializable {private String name;private String description;private String producer;public Tank() {System.out.println("Tank的无参构造执行了...");}public Tank(String name, String description, String producer) {System.out.println("Tank的有参构造执行了...");this.name = name;this.description = description;this.producer = producer;}
}

4.2.3、MySpringConfig

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/23 15:29* @Description:*/
@Configuration
@ComponentScan(basePackages = {"org.star"})
public class MySpringConfig {@Beanpublic Tank tank() {Tank tank = new Tank("东风0001","加满油能跑10000公里","中国");return tank;}}

4.2.4、AopFullAnnotationMainApp

/*** @Author : 一叶浮萍归大海* @Date: 2023/11/23 15:14* @Description:*/
@Slf4j
public class AopFullAnnotationMainApp {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MySpringConfig.class);Car car = context.getBean("car", Car.class);Tank tank = context.getBean("tank", Tank.class);log.info("car:{},tank:{}", car, tank);}}

五、Spring加载过程中bean的形态

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

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

相关文章

jetson nano SSH远程连接(使用MobaXterm)

文章目录 SSH远程连接1.SSH介绍2.准备工作3.连接步骤3.1 IP查询3.2 新建会话和连接 SSH远程连接 本节课的实现,需要将Jetson Nano和电脑保持在同一个局域网内,也就是连接同一个路 由器,通过SSH的方式来实现远程登陆。 1.SSH介绍 SSH是一种网…

魔珐科技:3D虚拟人AIGC原生产品,助力全新商业机遇

11月28日-29日,WISE2023 商业之王大会在北京国际会议中心成功举办。此次大会以“太阳照常升起(The Sun Always Rises)”为主题,活动汇聚了全商业领域知名企业,围绕前沿趋势,共话商业创新之策。 在本次论坛…

Python 字典深度解析:键值对的妙用与高级操作

字典(Dictionary)是Python中一种强大的数据结构,以键值对(key-value pairs)的形式存储数据。深入理解字典的基本操作以及高级应用,将使你更好地利用这一灵活而高效的工具。 基本概念 字典是无序、可变的数…

员工随意安装软件有什么危害?企业该如何管理?

现代企业中,员工使用电脑办公已经是常态,但总会有员工私自安装软件。员工随意安装软件有什么危害?企业该如何管理? 1. 恶意软件感染:不安全的软件可能包含病毒、木马、蠕虫等恶意软件,如果用户安装了这些软…

OSEK OS任务调度的底层逻辑

先参考 FreeRTOS的任务触发底层逻辑 简述RTOS任务调度底层逻辑 AUTOSAR-OS的调度机制-调度表(没理解透,继续更新) OSEK与FreeRTOS在任务调度上最大的区别在于,FreeRTOS是基于全抢占任务调度和时间片轮转调度机制,具有…

python-列表与字典的异同

Python中的列表(List)和字典(Dictionary)是两种不同类型的数据结构,它们在用途和特性上有一些重要的异同。 相同点: 可变性: 列表和字典都是可变的数据结构,可以在创建后修改其内容…

网络套接字

目录 UDP 套接字 理解源IP地址和目的IP地址 端口号 源端口号和目的端口号(port) TCP UDP 网络字节序 socket程序接口 UDP套接字编写 服务器编写 服务器类结构 构造函数 启动服务 主函数 客户端编写 UDP 套接字 理解源IP地址和目的IP地址…

开关电源基础而又硬核的知识

1.什么是Power Supply? Power Supply是一种提供电力能源的设备,它可以将一种电力能源形式转换成另外一种电力能源形式,并能对其进行控制和调节。 根据转换的形式分类:AC/DC、DC/DC、DC/AC、AC/AC 根据转换的方法分类:线性电源、…

Qt-QSplitter正确设置比例

简短版本: splitter->setSizes({1000, 2000}); // 这个值至少跟像素值设置的一样大,或者更大,例如x10倍详细版本: setSizes 官方介绍如下: Sets the child widgets’ respective sizes to the values given in the…

使用JMeter安装RabbitMQ测试插件的步骤

整体流程如下:先下载AMQP插件源码,可以通过antivy在本地编译成jar包,再将jar包导入JMeter目录下,重启JMeter生效。 Apache Ant 是一个基于 Java 的构建工具。Ant 可用于自动化构建和部署 Java 应用程序,使开发人员更轻…

Locust单机多核压测,以及主从节点的数据通信处理!

一、背景 这还是2个月前做的一次接口性能测试,关于locust脚本的单机多核运行,以及主从节点之间的数据通信。 先简单交代下背景,在APP上线之前,需要对登录接口进行性能测试。经过评估,我还是优先选择了locust来进行脚…

如何使用内网穿透实现无公网ip环境访问VScode远程开发

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

msvcp140.dll的解决方法有哪些。详细解析五种可以修复msvcp140.dll丢失的方法

引言: 在日常使用电脑的过程中,我们可能会遇到一些错误提示,其中之一就是“msvcp140.dll丢失”。那么,什么是msvcp140.dll文件?它的作用是什么?当它丢失时会对电脑产生什么影响?本文将详细介绍…

软件测试jmeter基本使用

1安装与配置 1.jdk下载 下载地址:https://www.oracle.com/java/technologies/downloads/#jdk18-windows(压缩包中会给) 2.jmeter下载 Apache JMeter - Download Apache JMeter(压缩包中有) 3.操作教学 打开软件后新…

jbrowse基因组浏览器部署

1 ca文件处理 samtools工具安装 wget https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2tar -jxvf samtools-1.9.tar.bz2 cd samtools-1.9/./configure --prefix/usr/local/samtoolssamtools faidx zdd0006.genome.v1.fa #生成ca文件的索引 执…

LeetCode797. All Paths From Source to Target

文章目录 一、题目二、题解 一、题目 Given a directed acyclic graph (DAG) of n nodes labeled from 0 to n - 1, find all possible paths from node 0 to node n - 1 and return them in any order. The graph is given as follows: graph[i] is a list of all nodes you…

C# PIE-SDK二次开发界面汉化方法

那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情! C# PIE-SDK二次开发界面汉化方法 🍀前言🌸配置方法🍕拷贝语言包文件夹🍔增加窗体代码🍟运行…

vue项目前缀nginx部署,解决刷新500 404等问题

vue项目中创建路由设置base路径vue.confg.js配置publicPath(默认为:‘/’)nginx配置后重启项目 vue项目中的配置 背景 假如我有个项目,ip访问:http://10.11.12.13:8080/login 域名访问 https://test001.hhhhhh.com/login 加个路径 “h5” I…

什么是PDN的交流阻抗?

什么是PDN的交流阻抗? 在电力电子领域,PDN(Power Distribution Network)的交流阻抗是一个重要的概念,它反映了PDN在交流电源和负载之间传输电能的能力。了解PDN的交流阻抗对于优化电源设计、提高系统性能和可靠性具有重…

SSM SpringBoot vue考勤信息管理系统

SSM SpringBoot vue考勤信息管理系统 系统功能 登录 注册 个人中心 部门信息管理 上班时间管理 考勤信息管理 员工信息管理 签到管理 请假信息管理 加班申请管理 出差申请管理 开发环境和技术 开发语言:Java 使用框架: SSM(Spring SpringMVC Mybaits)或Spring…