【4】【Spring】,【Ioc/DI】,【IoC容器】,【Bean】

news2025/1/10 21:02:37

1、Ioc/DI,IoC容器,Bean

为了解决不同实现方式耦合度高

Ioc:(Inversion of Control)控制反转

主要思想:使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想成为控制反转

spring提供了一个Ioc容器,用来充当Ioc思想中的“外部”

并且将创建或被管理的对象在Ioc容器中统称为Bean

 DI(Dependency Injection)依赖注入

在容器中建立bean与bean之间依赖关系的整个过程,称为依赖注入

将有关系的两个bean绑定

【Bean】入门案例

 1、管理什么?(Service和Dao)

2、如何将被管理的对象告知IoC容器?(配置)

3、被管理的对象交给IoC容器,如何获取到IoC容器?(接口)

4、IoC容器得到后,如何从容器中获取bean?(接口方法)

编写容器

 测试应用

  

总结流程:

1、导入Spring坐标

2、定义Spring管理的类(接口)

3、创建Spring配置文件,配置对应类作为Spring管理的bean

【DI】入门案例 

1、基于IoC的管理bean

2、Service中使用new形式创建的Dao对象是否保留?(否)

3、Service中需要的Dao对象如何进入到Service中?(提供方法)

4、Service与Dao之间的关系如何描述?(配置)

设置对象set方法

配置Service与Dao的关系

 

 此时new对象的过程就会交给容器自动的调用我们创建的set方法

Bean基础配置

1、bean基础配置

2、bean别名配置

3、bean作用范围配置

 可以在bean标签里用属性name=“” (双引号里可以定义多个别名,可以用空格或是,或是;分隔开)

bean默认是单例的,如果想要非单例,可以用scope属性=propertype修改

bean的作用范围说明(控制bean创建实例数量的)

1、为什么bean默认为单例的?(为了复用提高效率节省内存)

2、适合交给容器进行管理的bean

·表现层对象

·业务层对象

·数据层对象

·工具对象

3、不适合交给容器进行管理的bean

·封装实体的域对象

实例化bean的三种方式——构造方法(常用)

 

 

第四种方法:实现FactoryBean接口类

 

spring报错检查

报错:

直接拉到最后面看cause by...如果不能解决就再往上面看

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

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

相关文章

vite打包静态文件打开显示空白

vite 打包生成静态文件打开显示空白 需求场景 本地调试访问打包的文件看是否有啥问题,方便定位线上问题安卓手机需要去直接访问静态文件,而不是访问域名的情况 vite 打包生成的文件如果直接放在服务器中是可以正常访问的,但是本地直接访问…

三个方面使CRM在360度客户视图中受益

360度客户视图这个词相信您不会陌生,很多关于CRM客户管理系统的文章中都有所提及。所谓的360度客户视图,是帮助企业和业务人员建立客户认知,消除客户生命周期中的信息脱节,让业务人员为客户提供一致性的体验。接下来我们们说&…

Windows10神州网信版的安装

在大约20天里面我完成了Windows10神州网信版72台的安装,有些2009~2014年的计算机完成安装后做一般的办公应用也能流畅运行。买一台新的计算机至少要好几千,通过更换固态硬盘和内存条可以达到旧物新用的目的。 一、安装过程   1、检查硬件  …

Coggle 30 Days of ML(23年1月)打卡

前言 任务链接 这个任务内容比较感兴趣而且和工作内容相关,学习一下打个卡。 编码完成任务1,2,3,5,6,目前手上只有2080,之后在3090上跑。 最近杂事多,笔记、任务4和7之后再补充。 …

vue前端框架课程笔记(五)

目录非文件组件使用步骤定义组件示例(第一部分):使用Vue.extend函数创建三个组件注册组件示例(第二部分):组件的全局和局部注册组件使用示例(第三部分):编写组件标签最终…

软件工程(三)——需求工程、需求开发、需求定义

目录 一、需求定义 二、需求验证 三、需求管理 1.定义需求基线 2.需求跟踪 3.变更控制 四、软件系统建模 一、需求定义 把已经分析好的需求,落成文档,把东西记录下来,成为《需求规格说明书》。需求定义的方法有严格定义法 以及 原型法…

Java三路快速排序

概念 三路快速排序: 是双路快速排序的进一步改进版本,三路排序算法把排序的数据分为三部分,分别为小于 v,等于 v,大于 v,v 为标定值,这样三部分的数据中,等于 v 的数据在下次递归中…

QSplitter学习笔记

QSplitter是分割窗口控件,并且可以拖动窗口来改变窗口的大小,是主界面显示时经常用到,本篇介绍它的交互操作。QSplitter可以容纳多个Widget,具有布局的特点,并且可以动态调整各个Widget的大小。QSplitter布局有两种方式…

前端学习第五站——CSS学习进阶篇

目录 一、选择器进阶 1. 后代选择器(空格) 2. 子代选择器 > 3. 并集选择器:, 4. 交集选择器:紧挨着 5. hover伪类选择器 6. emmet语法 7. 选择器总结 二、背景相关属性 1. 背景颜色 2. 背景图片 3. 背景…

若依框架对接LDAP

这里直接使用spring ldap实现认证。 背景在若依框架上对接LDAP 代码 引入依赖 <!-- 对接ldap --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-ldap</artifactId></dependency>…

React-Native 开发实用指南|环信学院

本文主要介绍 React-Native 的实际使用经验&#xff0c;对于想要快速入门的同学是有帮助的。 作者 | 佐玉 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 1、整体介绍 首先说&#xff0c; React-Native 用来做什么&#xff1f;传统的开发中&#xff0c;按照平…

编译原理学习笔记16——语义分析和中间代码生成1

编译原理学习笔记16——语义分析和中间代码生成116.1 中间语言16.2 常用的中间语言形式16.1 中间语言 中间语言的特点和作用 特点 独立于机器复杂性界于源语言和目标语言之间 引入中间语言的优点 使编译程序的结构在逻辑上更为简单明确便于进行与机器无关的代码优化工作易于移…

力扣刷题|110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

LeetCode 110.平衡二叉树 题目链接&#x1f517; LeetCode 110.平衡二叉树 思路 递归三部曲分析&#xff1a; 明确函数的形参和返回值 参数&#xff1a;当前传入结点 返回值&#xff1a;以当前传入结点为根节点的树的高度 那么如何标记左右子树是否差值大于1呢&#xff…

3、SpringJdbcTemplate声明式事务

JdbcTemplate基本使用 01-JdbcTemplate基本使用-概述(了解) JdbcTemplate是spring框架中提供的一个对象&#xff0c;是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如&#xff1a;操作关系型数据的JdbcTemplate和HibernateTemplate&…

在Anaconda中安装pytorch的详细步骤+PyCharm环境配置

前言 深度学习小白一枚&#xff0c;自己的笔记本配置如下&#xff1a; 显卡&#xff1a;NVIDIA GeForce MX150&#xff08;非常垃圾的笔记本显卡&#xff09;固态硬盘 256GCPU&#xff1a;lntel Core™i7-8550UWindows&#xff1a;Windows 11家庭中文版 其他配置&#xff1a;…

代驾app开发开发搭建,代驾系统软件源码

在当下移动互联网发展的今天&#xff0c;大家对于生活的追求更加的趋向于其便捷性&#xff0c;这使得各种各样app被开发出来&#xff0c;出现在我们的生活之中。现在就把近期比较火的代驾app开发开发搭建的一些方案介绍一下。 代驾app产生的原因 代驾行业的快速发展&#xf…

<Java EE 进阶> Spring 创建和使用

目录 1.创建Spring项目 &#xff08;1&#xff09;创建一个Maven项目 &#xff08;2&#xff09;添加 Spring 框架支持&#xff08;spring-context、spring-beans&#xff09; &#xff08;3&#xff09;添加启动类 2.存储 Bean 对象 &#xff08;1&#xff09;创建 Bean …

计算几何知识(其一)

前提 最近闲着没事就看了计算几何的一些知识 构建凸包 Incremental Construction 复杂度为O(n2)原理就是不停蚕食下一个合适的点。判断原理是&#xff0c;第X个极点和前n个极点构成的多边形会有切点S&#xff0c;T。 和这两个点的连线&#xff0c;把原先多边形分成两个区域…

【软件测试】翻了下招聘APP只会点点点,很慌......测试业务?技术?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 我猜想大伙的职业生…

从0到0.1学习 maven(二:坐标、依赖和仓库)

该文章为maven系列学习的第二篇 第一篇快速入口&#xff1a;从0到0.1学习 maven(一&#xff1a;概述及简单入门) 第二节&#xff1a;坐标、依赖与仓库坐标依赖依赖范围传递性依赖依赖调解可选依赖依赖排除归类依赖优化依赖仓库路径生成仓库分类本地仓库远程仓库快照部署至远程仓…