Spring中IOC容器的基本配置使用

news/2024/4/29 3:37:18/文章来源:https://blog.csdn.net/weixin_53058174/article/details/127110983

实例化bean对象

在这里插入图片描述
使用getBean方法获取实例化对象
xml配置bean

为外部定义的bean起别名

在标签中使用alias属性起别名
也可以使用name属性直接为bean对象起别名

基于set方法的依赖注入

使用property标签中的name属性和value属性赋值
上面name属性的值要对应这里的set方法的名字

使用构造函数进行依赖注入

在这里插入图片描述
使用内部注入的方式注入bean对象
在这里插入图片描述

使用list集合依赖注入和使用map集合依赖注入

测试类

在这里插入图片描述
在这里插入图片描述

使用depends-on控制bean的加载顺序

在这里插入图片描述
使用懒加载lazy-init 默认为false
在spring容器创建的时候加载(实例化 true: 在使用的时候(getBean)才会去加载(实例化
一般来说这里new ClassPathXmlApplicationContext()的时候就会加载了,但加了懒加载后就不会

使用懒加载后只有调用了getBean()方法后才会加载

使用单例或者多例(原型),使用scope属性来说明是单例还是多例,默认是单例

在这里插入图片描述
在这里插入图片描述
注意:单例是指相同的对象有多个运行后,只加载一次。
多例是相同的对象有多个运行后,加载多次。

使用静态工厂方法实例化对象

在这里插入图片描述

在person里面加静态方法
在这里插入图片描述

使用实例化工厂方法实例化对象

factory-method属性要填写方法名,factory-bean属性要写上类名
在这里插入图片描述
测试类

使用自动注入

在这里插入图片描述
注意:
1.根据方法名字自动注入 autowire=“byName” 根据set方法的名字进行自动注入,例如setWife() id=“wife”,setxxx() id=“xxx”
2.根据类型自动注入 autowire=“byType” 根据类型进行自动注入
当出现多个相同bean类型的时候,没办法自动注入,会报错
3. constructor 根据构造器去匹配
优先会根据参数名字去匹配,假如参数名字没有匹配到,会根据参数类型去匹配
会根据构造函数的参数进行完整的匹配注入: 如果构造函数的参数Person(Wife wife3,User user)
ioc容器里面必须要有同时有wife和user
名字没有匹配到会根据类型匹配 类型假如出现多个会注入失败但是不会报错
测试类

使用第三方bean和引用外部属性资源文件

在这里插入图片描述
db.properties属性配置文件
在这里插入图片描述
生命周期回调两种方式,一种是实现接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置xml中的bean对象

在这里插入图片描述
init-method和destroy-method的属性值是需要我们在ioc容器中自定义方法然后调用的
在这里插入图片描述
测试类
使用SPEL表达式
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

C#中对象与JSON字符串互相转换的三种方式

JSON(JavaScriptObject Notation, JS 对象标记) 是一种轻量级的数据交换格式。 关于内存对象和JSON字符串的相互转换,在实际项目中应比较广泛,经过一番搜索,找到如下三种方法来解决此问题 分别是使用Newtonsoft.Json.dll、DataContractJsonSerializer、JavaScriptSerializer…

【老板要你啥都会系列】| 前端晋升全栈--项目日志

目录 1.开篇 2.nodejs文件操作 3.stream 4.stream演示 5.写日志 6.拆分日志 7.分析日志介绍 8.readline 1.开篇 日志包含什么访问人数啊、峰值啊、bug 啊什么的,如果没有日志那么很容易失控。 访问日志可以参考我们 http-server,每次访问都会有这…

谐振波导光栅的严格分析

摘要 谐振波导光栅(RWG)由于其在波长、相位和偏振等方面的可调谐性,在研究和工业中有着广泛的应用。RWG的结构包含一个薄的高折射率波导薄膜,该薄膜与光栅接触。波导支持多种导模,并且根据厚度的不同,模式的数量也不同。在这个…

javaFx打包exe程序

文章目录将代码打成jar包准备工作下载exe4j定制jre检测jar包用到jre的哪些jmods生成jre准备exe图标使用exe4j将jar转换成exe程序将代码打成jar包 打jar之前,把那些用不到的依赖统统删除,以免包含一些无用的内容,比如用不上的一些依赖jar&…

特征工程之特征降维-特征选择-PCA/LDA

特征降维之特征选择 特征选择是建模中常用的降维手段,比较暴力,直接将不重要特征删除。 缺点:造成信息丢失,不利于模型精度。【与之形成对比的是PCA、LDA等降维方式。】 主要标准有两个: 特征是否发散。特征与目标的…

简单组件讲解

在编程阶段,会遇到有些页面的某一区域的布局或数据显示类似;那么我们就可以复用这一段代码;在使用原生JS编程时,我们习惯是将代码抽出来自成一个文件,需要时引入即可。而在vue中也存在这样一个模块,可以简便的将可复用的代码抽成一个模块,这个就是组件。在很多人看来,组…

产品-如何让用户“更愿意“付费

学院课程 文章目录学院课程前言如何提高用户体验,吸引用户付费关于程序员等级的划分基础免费试看优质博客内容转化为视频用户关于短视频内容的生成关于利用用户的碎片化时间怎么差异化竞品?短视频赛道理解学院现状分析总结前言 学院地址 今天下午公司组织了一场需求…

线性回归

线性回归 导入库 import numpy as np import pandas as pd import matplotlib.pyplot as plt人工数据集n = 100 true_theta = np.array([[1], [1]]) X = np.insert(np.random.normal(5, 1, size=(n, 1)), 0, 1, 1) y = X @ true_theta + np.random.normal(0, 0.04, size=(n, …

Azure | AZ-204 认证之旅-应用服务(二)

theme: orange 我正在参加「掘金启航计划」 Web应用是构建在PaaS层的服务,它是支持托管的,并且是可缩放的,极大提高了工程效率,并且减少了在运营的层面的消耗,这篇文章介绍如何创建应用程序服务。 创建Web应用程序服务…

pytorch深度学习训练模板(分类、回归)

前言 LeNet-AlexNet-ZFNet: LeNet-AlexNet-ZFNet一维复现pytorch VGG: VGG一维复现pytorch GoogLeNet: GoogLeNet一维复现pytorch ResNet: ResNet残差网络一维复现pytorch-含残差块复现思路分析 DenseNet: DenseNet一维复现pytorch 包含所有一维经典模型的代码可随意切换训练 …

云原生技术 --- k8s节点组件之kube-proxy的学习与理解

k8s 网络代理(kube-proxy)在每个节点上运行。网络代理反映了每个节点上 Kubernetes API 中定义的服务,并且可以执行简单的 TCP、UDP 和 SCTP 流转发,或者在一组后端进行 循环 TCP、UDP 和 SCTP 转发。但是,必须要有一个插件,才可以…

毕业设计- 基于单片机与GPS+GSM的车辆定位跟踪系统

文章目录0 前言1 简介2 主要器件3 实现效果4 硬件设计Maduino Zero A9G GPRS/GPSk开发板这款低功耗A9G使用SIM800/900和NEO-6M GPS模块的基于Arduino的GPS跟踪系统5 软件说明使用Arduino的基于GPSGSM的车辆跟踪系统GPSGSM的车辆跟踪系统的代码6 最后0 前言 🔥 这两…

IDEA中使用Git

目录 一、IDEA中使用Git 配置Git settings ——>Version Control——>Git 点击Test测试版本号 下载gitee插件 配置账户 第一种方式:账号密码 第二种方式:通过Token令牌 分享单个项目 组员需要拿到项目的SSH地址 二、总结 一、IDEA中使用G…

万物互联时代到来,猿代码领衔先计算机赋数据化转型

社会经济的高速发展推动着各行各业进行转型升级,而数字经济则是当前社会经济发展的强大驱动。根据相关报道显示,早在多年前我国数字经济规模总量便达到万亿元规模,占2016年全年GDP比重的30%。数字经济的飞速发张需要强劲算力的支撑…

wxpython设计GUI:grid控件实现显示表单数据功能,同时实现界面的上下翻页以及跳转功能

grid控件实现显示表单数据功能,同时实现界面的上下翻页以及跳转功能。 1. 效果展示 2. 代码实现 #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: Logintern09########################################################################### ## Python …

【图像分割】基于matlab直方图的自适应阈值方法分割前景与背景【含Matlab源码 2144期】

一、一种基于直方图的实时自适应阈值分割方法简介 1 引言 在交通管理中,为了获得车辆的运动数据,需要对交通视频进行实时监测,从监测图像序列中检测出运动对象,并对运动对象进行分析处理,从而获得车辆和行人的运动数据…

EMQX Cloud 影子服务:便捷数据缓存服务,加速 IoT 应用开发

全托管 MQTT 消息云服务 EMQX Cloud 可以帮助用户轻松将各类物联网设备连接上云,提供与各类第三方服务的数据集成,助力用户进行高效的数据处理、存储与分析。 为了实现更加便捷的物联网数据处理,进一步简化用户构建物联网应用的开发流程&…

好心情精神心理科:抑郁症,真的会让你变丑!

有患者向好心情平台咨询:“抑郁症多年,我总感觉自己变丑了,脸色也不咋好看,这到底是我的心理作用,还是容貌真有变化呢?” 变丑这件事,不致命,但对于很多人来说,却似乎难…

net转java学习笔记-sqlserver的问题记录

最近公司有个.net项目,用的不是mysql是sqlserver,中间遇到几次问题记录下。 1.navicat连接sqlserver失败 百度了一下这个是缺少了驱动,其实navicat自带了这个驱动,没有安装而已。 打开Navicat的安装路径,Navicat自带s…

qsort:我很强,了解一下(详解过程)

了解qsort,以及模拟实现🎑情境引入🎈qsort📖qsort的头文件📄开场🔑qsort的参数🤔为什么可以对任意类型排序呢?📜参数参数①参数②参数③最难的参数④🎃qsort应…