Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)

目录

  • Spring(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
    • 概述
      • Spring是轻量级的开源的JavaEE框架
      • Spring可以解决企业应用开发的复杂性
      • Spring有两个核心部分ioc,aop
      • Spring特点
    • loc(概念和原理)
      • 什么是 IOC
      • IOC 底层原理
      • IOC 过程图
    • IOC(接口)
      • IOC思想基于 IOC容器完成,IOC 容器底层就是对象工厂
      • Spring 提供 IOC容器实现两种方式:(两个接口)
      • ApplicationContext 接口有实现类
    • IOC操作Bean管理
      • 什么是Bean管理
      • Bean管理操作有两种方式
        • 基于Xml配置文件方式
        • xml注入其他属性
        • 注入属性(外部类)
        • 注入属性-内部bean级联赋值
        • 注入属性,级联赋值
        • xml注入集合属性
        • xml对象集合属性注入
        • xml把集合注入部分提取出来

开篇:
欢迎来到 Spring 5 学习系列!在这个系列中,我们将深入研究 Spring 框架的最新版本,揭示其在现代Java开发中的精髓。无论你是初学者还是有经验的开发者,本系列都旨在为你提供深刻的理解和实用的知识,让你在构建强大、可维护和高效的应用程序方面更上一层楼。

  • 为什么选择 Spring 5?
    随着Java生态系统的不断发展,Spring框架一直是Java开发的首选框架之一。Spring 5作为其演变的最新版本,引入了众多令人激动的新特性和改进,使得它更加适应当今动态和高效的开发需求。从反应式编程到模块化系统,Spring 5 为我们提供了丰富的工具和解决方案。

Spring(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)

概述

Spring是轻量级的开源的JavaEE框架

Spring可以解决企业应用开发的复杂性

Spring有两个核心部分ioc,aop

  • IOC:控制反转,把创建的对象过程交给Spring进行管理
  • AOP:面向切面,不修改源代码对功能进行加强

Spring特点

  1. 方便解耦,简化开发
  2. Aop编程支持
  3. 方便测试
  4. 可以方便和其他框架整合
  5. 进行了很多封装
  6. 方便进行事务操作

loc(概念和原理)

什么是 IOC

  • 控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理

  • 使用 IOC目的: 为了耦合度降低`

IOC 底层原理

(1) xml解工厂模式、反射

IOC 过程图

在这里插入图片描述

IOC(接口)

IOC思想基于 IOC容器完成,IOC 容器底层就是对象工厂

Spring 提供 IOC容器实现两种方式:(两个接口)

  • BeanFactory: IOC容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用

    • 加载配置文件时候不会创建对象,在获取对象(使用) 才去创建对象
  • ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人

    员进行使用

    • 加载配置文件时候就会把在配置文件对象进行创建

ApplicationContext 接口有实现类

在这里插入图片描述

IOC操作Bean管理

什么是Bean管理

  • Spring创建对象
  • Spring注入属性

Bean管理操作有两种方式

基于Xml配置文件方式

在这里插入图片描述

  1. 创建对象
  • 在 spring 配置文件中,使用 bean 标签,标签里面添加对应属性,就可以实现对象创建
  • 在 bean 标签有很多属性,介绍常用的属性
    *id 属性: 唯一标识
    *class 属性:类全路径 (包类路径)
  • 创建对象时候,默认也是执行无参数构造方法完成对象创建
  1. 注入属性
  • DI:依赖注入(注入属性)

    • 使用set方式注入

      • 创建类
      • 定义属性和对应的方法

    在这里插入图片描述

    • 在spring配置文件配置对象创建,配置属性注入

      • 配置bean标签 即 创建类
      • 在bean里面配置property 即 设置属性

    在这里插入图片描述

  • 有参构造

    • 使用有参构造方法
      在这里插入图片描述

    • 使用配置文件
      在这里插入图片描述

xml注入其他属性
  • 向属性里面设置空值
    在这里插入图片描述

  • 属性值包含特殊符号,例如 < >
    在这里插入图片描述

注入属性(外部类)
  1. 创建两个类service和dao
  2. service中调用dao
  3. spring配置文件中配置
    在这里插入图片描述
注入属性-内部bean级联赋值
  1. 一对多关系:部门和员工

一个部门多个员工,一个员工只属于一个部门
在这里插入图片描述

​ }

}

  1. 配置文件中配置

在这里插入图片描述

注入属性,级联赋值

在这里插入图片描述

xml注入集合属性

在这里插入图片描述

并且生成get/set方法,图片中省略

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

xml对象集合属性注入

在这里插入图片描述

xml把集合注入部分提取出来
  1. 引入util的bean命名空间
    在这里插入图片描述

  2. xml注入
    在这里插入图片描述

感谢您阅读 Spring 5 学习系列的第一篇!在这篇文章中,我们探索了Spring5的(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)

下一篇文章即将发布! 在第二篇中,我们将深入研究Spring 5的IOC,为您分享我学习的Spring5的收获,请继续关注我的系列。

谢谢您的陪伴! 如果您有任何问题、建议或想要了解的特定主题,请随时在评论中告诉我们。我们期待与您共同探索Spring 5,共同提升我们的Java开发技能!

敬请期待第二篇的发布,我们将很快与您再次见面!

学习视频来源尚硅谷Spring5

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

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

相关文章

Java和Redis实现一个简单的热搜功能

1. 前言 我们有一个简单的需求&#xff1a; 搜索栏展示当前登陆的个人用户的搜索历史记录&#xff0c;删除个人历史记录。用户在搜索栏输入某字符&#xff0c;则将该字符记录下来 以zset格式存储的redis中&#xff0c;记录该字符被搜索的个数以及当前的时间戳 &#xff08;用…

阿里云优惠整理,最新2024阿里云优惠政策解读

阿里云优惠政策有哪些&#xff1f;2024年阿里云优惠政策风向改了&#xff0c;之前一直是老用户与狗的营销策略&#xff0c;今年阿里云2核2G、3M固定带宽服务器99元居然开启了老用户购买权限&#xff0c;并且续费不涨价&#xff0c;阿里云这波操作确实让用户赢麻了&#xff0c;在…

MBR扇区修复和GRUB引导修复实验

修复MBR扇区 步骤一&#xff1a;在进行实验之前我们需要新加一块磁盘&#xff0c;并对新加磁盘进行分区处理&#xff0c;用来备份sda磁盘的MBR及分区表信息。&#xff08;注&#xff1a;在实验中可以不像我如此这么繁琐&#xff0c;一个主分区&#xff0c;并格式化挂载即可&am…

PyQt5 快速入门(一)

第一节按钮控件,文本控件,输入框,app图标 文章目录 一.GUI按钮控件 二.文本控件 三.输入框 四.让窗口显示在屏幕中央 五.让窗口显示在屏幕中央 总结 一.GUI按钮控件 import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButtonif __name__ __main__:app …

UG制图-视图与投影

当我们进入图纸页后&#xff0c;我们需要对产品进行投影然后进行标注 注意&#xff1a;如果是从零件3D中直接进入制图&#xff0c;默认情况下图框所在的图层是不显示的&#xff0c;我们可以通过菜单或者快捷键ctrl L进入图层设置模块&#xff0c;将图层170和173勾选为显示 我…

MacM1Pro Parallels19.1.0 CentOS7.9 Install PostgrepSQL

相关阅读 MacM1Pro安装 Parallels Desktop 19.1.0 https://blog.csdn.net/qq_41594280/article/details/135420241 MacM1Pro Parallels安装Parallels Tools https://blog.csdn.net/qq_41594280/article/details/135398780 MacM1Pro Parallels安装CentOS7.9 https://blog.csdn.n…

Java JVM内存结构 虚拟机栈 本地方法栈 方法区 直接内存

Java Virtual Machine &#xff0c;Java 程序的运行环境&#xff08;Java 二进制字节码的运行环境&#xff09;。 常见的 JVM&#xff1a; 来源维基百科&#xff1a;https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines 学习路线&#xff1a; 参考资料&#x…

141基于matlab的齿轮系统非线性动力学特性分析

基于matlab的齿轮系统非线性动力学特性分析&#xff0c;综合考虑齿侧间隙、时变啮合刚度、综合啮合误差等因素下&#xff0c;参数阻尼比变化调节下&#xff0c;输出位移、相图、载荷、频率幅值结果。程序已调通&#xff0c;可直接运行。 141 matlab齿轮非线性动力学 (xiaohongs…

基于Altium Designer 10设计双层印刷电路板的详细步骤

基于Altium Designer 10设计双层印刷电路板的详细步骤 一、基于Altium Designer 10设计双层印刷电路板总纲二、、基于Altium Designer 10设计双层印刷电路原理图三、制作集成库(包括原理图、PCB封装库、PCB 3D库)1、新建集成库2、新建原理图库3、绘制原理图库(1)、手工绘制…

网络数据传输过程

先验知识&#xff1a;OSI模型 OSI网络模型实际上是参考模型&#xff0c;在实际中并不使用&#xff0c;在网络出现问题的时候&#xff0c;可以从一个宏观的整体去分析和解决问题&#xff0c;而且搭建网络的时候并不需要划分为7层&#xff0c;当今互联网广泛使用的是TCP/IP网络模…

【Linux驱动】休眠与唤醒 | POLL机制 | 异步通知 | 阻塞与非阻塞 | 软件定时器

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux驱动》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f3d3;休眠与唤醒&#x1f3f8;内核函数&#x1f3f8;驱动框架及编程 &#x1f3d3;…

《WebKit 技术内幕》学习之五(1): HTML解释器和DOM 模型

第五章 HTML 解释器和 DOM 模型 1.DOM 模型 1.1 DOM标准 DOM &#xff08;Document Object Model&#xff09;的全称是文档对象模型&#xff0c;它可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。这里的文档可以是 HTML 文档、XML 文档或者 XHTML 文档。D…

java数组ArrayList(存对象)

1、dade文件 package model;public class dade {private int id;private String name;public dade() {}public dade(int id, String name) {this.id id;this.name name;}public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {…

透明拼接屏代工:专业制造与质量保证

透明拼接屏代工是指专业的代工厂家根据客户的需求&#xff0c;为其生产透明拼接屏产品。随着透明拼接屏市场的不断扩大&#xff0c;越来越多的企业选择通过代工方式快速进入市场。尼伽小编将深入探讨透明拼接屏代工的优势、选择合适的代工厂家以及质量保证等方面的内容。 一、透…

枚举算法(穷举法)(暴力法)

1.什么是枚举 枚举是指在一定范围内将所有情况一一列举&#xff0c;再通过条件判断得到自己想要的答案&#xff1b; 2.枚举核心 3.使用枚举的基本步骤 4.例题 4.1.我国古代数学家张丘建在他的《算经》一书中提出了著名的“百钱买百鸡”问题:鸡翁一值钱五;鸡母一值钱三;鸡雏三…

数组A[m+n]中存放了两个线性表(a1,a2,.....am)和(b1,b2.....bn),将数组中的两个线性表的位置互换,要求空间复杂度为1

要求空间复杂度为O(1)&#xff0c;那么不可以借助辅助数组来完成此操作 算法思路&#xff1a;可先将此数组逆置变成bn,......b1,am,....,a1&#xff0c;然后分别逆转两个线性表的数据元素 算法实现 1、定义一个函数&#xff0c;该函数的功能是可以对一个数组的任意连续的部分进…

【Web前端开发基础】CSS的结构伪类选择器、伪元素、浮动

CSS的浮动 目录 CSS的浮动一、学习目标二、文章内容2.1 结构伪类选择器2.2 伪元素2.3 标准流2.4 浮动2.5 清除浮动2.6 拓展&#xff08;BFC&#xff09; 三、综合案例3.1 小米模块案例3.2 网页导航案例 一、学习目标 能够使用结构伪类选择器在HTML中选元素能够说出标准流元素的…

03-常用编程概念

上一篇&#xff1a;02-编程猜谜游戏 本章介绍几乎所有编程语言中都会出现的概念&#xff0c;以及它们在 Rust 中的工作原理。许多编程语言的核心都有许多共同点。本章介绍的概念都不是 Rust 独有的&#xff0c;但我们会在 Rust 的上下文中讨论这些概念&#xff0c;并解释使用这…

Java封装字符串的类和异常

1.API 1.1 API概述-帮助文档的使用 什么是API API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API 指的就是 JDK 中提供了各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xf…

深入剖析 Git 对象底层原理

一、引言 在我们日常使用 Git 时&#xff0c;通常的操作是&#xff1a; 在写完一段代码后&#xff0c;执行 git add命令&#xff0c;将这段代码添加到暂存区中然后再执行 git commit和 git push 命令&#xff0c;将 本地 Git 版本库中的提交同步到服务器中的版本库中 Git 在…