当前位置: 首页 > news >正文

Spring-bean

Spring

网站:spring.io
两个方面:
简化开发:

  • IoC
  • AOP

框架整合:

  • MyBatis

SpringFrameWork系统架构(上层依赖下层)

在这里插入图片描述
解决问题(代码耦合度高——模块与模块之间的依赖程度)
目标:充分解耦
解决方案:使用对象时,在程序中不要主动使用new产生对 象,转换为由外部(核心容器:core container)提供对象

  • IoC(Inversion of Control)控制反转:对象的创建控制权由程序转移到外部,这种思想称为控制反转
  • DI(Dependency Injection)依赖注入:在容器中建立bean与bean之间得依赖关系得整个过程,称为依赖注入
  • bean:IoC容器中创建或者管理的对象
  • bean(IoC容器中创建或者管理的对象)别名配置:name——》定义bean得别名,可定义多个,使用逗号(,)分号(;)空格( )分隔
  • bean的作用范围是单例的,需要用scope = "prototype"可以使用多个对象
  • 合适交给容器进行管理的bean(单例对象):表现层对象,数据层对象,业务层对象,工具对象
  • 不合适交给容器进行管理的bean(需要多例对象):封装实体的域对象
<bean id="bookDao" name="book1 book2 book3" class="com.src.impl.BookServiceImpl"/>

实例化bean

1、构造方法(常用),无参构造方法如果不存在,将抛出异常BeanCreationException

<bean id="bookDao" class="com.src.dao.impl.BookDaoImpl"/>

2、静态工厂

<bean id="bookDao" class="com.src.factory.OrderDaoFactory" factory-metod="getOrderDao"/>

3、实例工厂.先造出工程实例对象

<bean id="userFactory" class="com.src.factory.userDaoFactory"/>
<bean id="userDao" factory-method="getUserDao" factory-bean="userFactory">

4、FactoryBean实例化(使用泛型)
在这里插入图片描述

bean的生命周期

初始化容器
1.创建对象〔内存分配)
2.执行构造方法
3.执行属性注入( set操作)
4.执行bean初始化方法
使用bean
1.执行业务操作
关闭/销毁容器
1.执行bean销毁方法

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

相关文章:

Spring-bean

Spring 网站&#xff1a;spring.io 两个方面&#xff1a; 简化开发&#xff1a; IoCAOP 框架整合&#xff1a; MyBatis SpringFrameWork系统架构&#xff08;上层依赖下层&#xff09; 解决问题&#xff08;代码耦合度高——模块与模块之间的依赖程度&#xff09; 目标&am…...

Linux常用命令(14)—查看文件内容(有相关截图)

写在前面&#xff1a; 最近在学习Linux命令&#xff0c;记录一下学习Linux常用命令的过程&#xff0c;方便以后复习。仅供参考&#xff0c;若有不当的地方&#xff0c;恳请指正。如果对你有帮助&#xff0c;欢迎点赞&#xff0c;关注&#xff0c;收藏&#xff0c;评论&#xf…...

【html】用html+css实现银行的账户信息表格

我们先来看一看某银行的账户信息表格 我们自己也可以实现类似的效果 效果图: 大家可以看到&#xff0c;其实效果差不多 接下来看看我们实现的代码 源码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"&…...

两种单例模式(保证线程安全)

开始前&#xff0c;球球各位读者给个三连吧&#xff0c;有错误感谢指出&#xff0c;谢谢 单例模式也叫单个实例&#xff0c;也就是这个类只有且只能有一个实例对象&#xff0c;这样一个类就叫做“单例”&#xff1b;单例模式有很多种&#xff0c;这里只介绍“饿汉模式”和“懒…...

开发 Golang 项目的 Docker 化案例

开发 Golang 项目的 Docker 化案例 在这个案例中&#xff0c;我们将展示如何使用 Docker 容器化一个简单的 Golang Web 应用。我们将创建一个基于 Go 的 Hello World 应用&#xff0c;并使用 Docker 和 Docker Compose 管理容器化环境。 1. 创建 Golang Web 应用 首先&#…...

PHP面试宝典之Laravel篇

Laravel简介 Laravel是一种优雅的PHP Web应用程序框架&#xff0c;它具有简洁、优雅的语法&#xff0c;并提供了强大的工具用于构建大型、健壮的应用程序。Laravel采用了现代PHP开发的最佳实践&#xff0c;因此深受开发者欢迎。 Laravel面试常见问题 1. 什么是Laravel中间件…...

自动驾驶仿真:Carsim转向传动比设置

文章目录 一、转向传动比概念二、设置转向传动比1、C factor概念2、Steer Kinematics概念3、传动比计算公式 三、转向传动比验证 一、转向传动比概念 转向传动比&#xff08;Steering Ratio&#xff09;表示方向盘转动角度与车轮转动角度之间的关系。公式如下&#xff1a; 转向…...

PyTorch nn.CrossEntropyLoss() 交叉熵损失函数详解和要点提醒

文章目录 前置知识nn.CrossEntropyLoss() 交叉熵损失参数数学公式带权重的公式&#xff08;weight&#xff09;标签平滑&#xff08;label_smoothing&#xff09; 要点 附录参考链接 前置知识 深度学习&#xff1a;关于损失函数的一些前置知识&#xff08;PyTorch Loss&#x…...

DW学习笔记|数学建模task2

本章主要涉及到的知识点有&#xff1a; 微分方程的解法如何用 Python 解微分方程偏微分方程及其求解方法微分方程的基本案例差分方程的求解数值计算方法元胞自动机 2.1 微分方程的理论基础 微分方程是什么&#xff1f;如果你参加过高考&#xff0c;可能在高三备考中遇到过这…...

【大数据 复习】第9章 数据仓库分析工具Hive

一、概念 1.概述 &#xff08;1&#xff09;Hive是一个构建于Hadoop顶层的数据仓库工具。 &#xff08;2&#xff09;某种程度上可以看作是用户编程接口&#xff0c;本身不存储和处理数据。 &#xff08;3&#xff09;依赖分布式文件系统HDFS存储数据。 &#xff08;4&#xf…...

ionic7 从安装 到 项目启动最后打包成 apk

报错处理 在打包的时候遇到过几个问题&#xff0c;这里记录下来两个 Visual Studio Code运行ionic build出错显示ionic : 无法加载文件 ionic 项目通过 android studio 打开报错 capacitor.settings.gradle 文件不存在 说明 由于之前使用的是 ionic 3&#xff0c;当时打包的…...

setInterval 定时任务执行时间不准验证

一般在处理定时任务的时候都使用setInterval间隔定时调用任务。 setInterval(() > {console.log("interval"); }, 2 * 1000);我们定义的是两秒执行一次&#xff0c;但是浏览器实际执行的间隔时间只多不少。这是由于浏览器执行 JS 是单线程模式&#xff0c;使用se…...

Stable Diffusion Model网站

Civitai Models | Discover Free Stable Diffusion Modelshttps://www.tjsky.net/tutorial/488https://zhuanlan.zhihu.com/p/610298913超详细的 Stable Diffusion ComfyUI 基础教程&#xff08;一&#xff09;&#xff1a;安装与常用插件 - 优设网 - 学设计上优设 (uisdc.com)…...

K8S - 实现statefulset 有状态service的灰度发布

什么是灰度发布 Canary Release 参考 理解 什么是 滚动更新&#xff0c;蓝绿部署&#xff0c;灰度发布 以及它们的区别 配置partition in updateStrategy/rollingUpdate 这次我为修改了 statefulset 的1个yaml file statefulsets/stateful-nginx-without-pvc.yaml: --- apiVe…...

Qt 技术博客:深入理解 Qt 中的 delete 和 deleteLater 与信号槽机制

在 Qt 开发中&#xff0c;内存管理和对象生命周期的处理是至关重要的一环。特别是在涉及信号和槽机制时&#xff0c;如何正确删除对象会直接影响应用程序的稳定性。本文将详细讨论在使用 Qt 的信号和槽机制时&#xff0c;delete 和 deleteLater 的工作原理&#xff0c;并给出最…...

自学鸿蒙HarmonyOS的ArkTS语言<一>基本语法

一、一个ArkTs的目录结构 二、一个页面的结构 A、装饰器 Entry 装饰器 : 标记组件为入口组件&#xff0c;一个页面由多个自定义组件组成&#xff0c;但是只能有一个组件被标记 Component : 自定义组件, 仅能装饰struct关键字声明的数据结构 State&#xff1a;组件中的状态变量…...

【OpenGauss源码学习 —— (ALTER TABLE(列存修改列类型))】

ALTER TABLE&#xff08;列存修改列类型&#xff09; ATExecAlterColumnType 函数1. 检查和处理列存储表的字符集&#xff1a;2. 处理自动递增列的数据类型检查&#xff1a;3. 处理生成列的类型转换检查&#xff1a;4. 处理生成列的数据类型转换&#xff1a; build_column_defa…...

【大数据 复习】第7章 MapReduce(重中之重)

一、概念 1.MapReduce 设计就是“计算向数据靠拢”&#xff0c;而不是“数据向计算靠拢”&#xff0c;因为移动&#xff0c;数据需要大量的网络传输开销。 2.Hadoop MapReduce是分布式并行编程模型MapReduce的开源实现。 3.特点 &#xff08;1&#xff09;非共享式&#xff0c;…...

Zookeeper:节点

文章目录 一、节点类型二、监听器及节点删除三、创建节点四、监听节点变化五、判断节点是否存在 一、节点类型 持久&#xff08;Persistent&#xff09;&#xff1a;客户端和服务器端断开连接后&#xff0c;创建的节点不删除。 持久化目录节点&#xff1a;客户端与Zookeeper断…...

生产级别的 vue

生产级别的 vue 拆分组件的标识更好的组织你的目录如何解决 props-base 设计的问题transparent component &#xff08;透明组件&#xff09;可减缓上述问题provide 和 inject vue-meta 在路由中的使用如何确保用户导航到某个路由自己都重新渲染&#xff1f;测试最佳实践如何制…...

从“上管掉电”到稳定驱动:手把手教你计算EG2104自举电容的容值与选型(附PWM占空比影响分析)

从“上管掉电”到稳定驱动&#xff1a;手把手教你计算EG2104自举电容的容值与选型&#xff08;附PWM占空比影响分析&#xff09; 在高压半桥驱动电路设计中&#xff0c;自举电容的选型往往成为工程师最易忽视却最关键的环节。EG2104作为一款经典的高低压侧驱动芯片&#xff0c;…...

央视刷屏燃了!82 岁“中国刻蚀机之父”放狠话:我们已有能力来做最先进的设备

5 月 16 日央视《对话》播出后&#xff0c;82 岁的“中国刻蚀机之父”尹志尧一夜刷屏&#xff0c;相关话题冲上热搜&#xff0c;背后是他的硬核宣言&#xff1a;我们现在已经有能力来做最先进的设备。①尹志尧早年赴美深造&#xff0c;在半导体设备领域深耕数十年。他曾先后在英…...

HTML代码加密工具源码_在线网页加密解密_防复制源码

概述 在前端开发与网页设计中&#xff0c;保护原创代码不被轻易复制或篡改是许多开发者的核心诉求。无论是为了隐藏核心逻辑&#xff0c;还是防止样式被恶意盗用&#xff0c;一款高效、安全的加密工具都显得尤为重要。为此&#xff0c;幽络源源码网特别整理并分享这款HTML代码…...

为开发者工具注入情感分析能力:开源库ai-devtools-sentiment实战指南

1. 项目概述&#xff1a;一个为开发者工具注入情感分析能力的开源库最近在折腾一些开发者工具&#xff0c;比如代码审查机器人、文档生成器或者IDE插件&#xff0c;我总感觉它们冷冰冰的。它们能告诉你代码有语法错误&#xff0c;能提示你某个API已废弃&#xff0c;但它们无法感…...

B站视频转文字终极方案:3分钟学会一键智能提取视频内容

B站视频转文字终极方案&#xff1a;3分钟学会一键智能提取视频内容 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为整理B站视频内容而烦恼吗&#xff1…...

从像素到频域:基于可逆神经网络与小波变换的下一代图像隐写术

1. 为什么图像隐写需要从像素域转向频域&#xff1f; 传统图像隐写术大多直接在像素层面操作&#xff0c;比如通过微调RGB值的最低有效位&#xff08;LSB&#xff09;来嵌入信息。这种方法简单直接&#xff0c;但存在明显缺陷&#xff1a;人眼对像素级变化的敏感度其实很高&…...

神经网络分子动力学与长程静电模拟优化策略

1. 神经网络分子动力学与长程静电模拟的技术背景分子动力学模拟作为计算化学和材料科学的核心工具&#xff0c;其本质是通过数值求解牛顿运动方程来预测原子和分子的运动轨迹。传统的第一性原理分子动力学&#xff08;AIMD&#xff09;虽然精度高&#xff0c;但由于计算复杂度随…...

[2026最新版] 保姆级 Burp Suite 安装教程

在Windows上安装教程如下&#xff1a; 文件下载&#xff1a;点我下载&#xff08;NAS分享链接&#xff0c;若链接过期或无法下载&#xff0c;请联系作者&#xff1a;zeyun4699gmail.com&#xff09; 步骤一&#xff1a;下载来自我上传的文件&#xff08;你会得到步骤二的图片…...

Umi-CUT:三分钟解决图片批量处理难题,让工作效率翻倍!

Umi-CUT&#xff1a;三分钟解决图片批量处理难题&#xff0c;让工作效率翻倍&#xff01; 【免费下载链接】Umi-CUT 图片批量去黑边/裁剪/压缩工具&#xff0c;带界面。可排除图片边缘的色块干扰&#xff0c;将黑边删除干净。基于 Opencv 。 项目地址: https://gitcode.com/g…...

Opensmile实战:从零到一的音频特征提取指南

1. 为什么选择Opensmile处理音频特征&#xff1f; 第一次接触音频分析时&#xff0c;我被各种专业工具搞得眼花缭乱。直到实验室的师兄推荐了Opensmile&#xff0c;这个开源工具彻底改变了我的工作效率。它最吸引我的地方在于三点&#xff1a;全流程覆盖&#xff08;从特征提取…...