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

news2024/12/23 8:55:52

目录

  • 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

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

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

相关文章

蓝桥杯重要知识点和赛题直通车

<蓝桥杯软件赛>零基础备赛20周 第 1周(2023-10-23): 蓝桥杯软件赛介绍官方链接零基础能得奖吗&#xff1f; 第 2周(2023-10-30): 常考知识点蓝桥杯怎么判题备赛计划 第 3周(2023-11-06): 填空题&#xff08;分数少但越来越不好做&#xff09; 第 4周(2023-11-13): &#…

免费在线压缩图片网站分享

支持批量压缩处理&#xff0c;但需要注意&#xff0c;网站仅仅支持体积为5MB的图片&#xff0c;压缩率高达66%&#xff0c;压缩完成后&#xff0c;点下Donwnload all&#xff0c;就能将图片保存至本地。 网页端直接进行图片压缩 https://tinify.cn/

软件测试到底是选择自学还是报培训机构(纯个人经验分享)----分享给正在迷茫的学弟学妹们!

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

IOS工程师,再不转型!失业在所难免!

随着智能手机的快速普及&#xff0c;移动应用开发成为了一个炙手可热的职业。而在手机市场上&#xff0c;以前主要是iOS和Android是两个操作系统。近几年在中国市场上&#xff0c;iPhone手机销量持续下滑&#xff0c;与之相反&#xff0c;华为手机一直处于领先地位。这对于从事…

【立创EDA-PCB设计基础】3.网络表概念解读+板框绘制

前言&#xff1a;本文对网络表概念解读板框绘制&#xff08;确定PCB板子轮廓&#xff09; 网络表概念解读 在本专栏的上一篇文章【嘉立创EDA-PCB设计指南】2&#xff0c;将设计的原理图转为了PCB&#xff0c;在PCB界面下出现了所有的封装&#xff0c;以及所有的飞线属性&…

数据集笔记:UJIIndoorLoc

1 数据集介绍 UJIIndoorLoc - UCI Machine Learning Repository UJIIndoorLoc是一个多建筑多楼层的室内定位数据库&#xff0c;用于测试依赖于WLAN/WiFi指纹的室内定位系统。 2 数据读取 数据分类训练数据和测试数据 import pandas as pdapd.read_csv(Downloads/ujiindoo…

Bit Extraction and Bootstrapping for BGV/BFV

参考文献&#xff1a; [GHS12] Gentry C, Halevi S, Smart N P. Better bootstrapping in fully homomorphic encryption[C]//International Workshop on Public Key Cryptography. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 1-16.[AP13] Alperin-Sheriff J, Pe…

Python文件操作和异常处理:高效处理数据的利器

文章目录 一、引言1.1 文件操作和异常处理对于编程的重要性1.2 Python作为实现文件操作和异常处理的强大工具 二、为什么学习文件操作和异常处理2.1 处理各种文件格式&#xff1a;从文本到图像到音频等2.2 确保代码的鲁棒性&#xff1a;有效处理异常情况 三、文件读取和写入3.1…

Duplicate object key json(520)

亲爱的码友&#xff0c;当你看到这个错误 请查看一下你的json文件内容的关键词是不是重复了 举个栗子&#x1f330; 往下翻翻&#xff1a; 删一个就行&#xff01;&#xff01;&#xff01; 被自己傻哭了吧&#x1f923;&#x1f923;&#x1f923;

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

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

数据可视化 | 期末复习 | 补档

文章目录 &#x1f4da;介绍可视化&#x1f407;什么是可视化&#x1f407;科学可视化&#xff0c;信息可视化&#xff0c;可视分析系统三者之间有什么区别&#x1f525;&#x1f407;可视化的基本流程&#x1f407;可视化的两个基本设计原则&#x1f407;数据属性&#x1f407…

【Android】TypedArray的使用

介绍 看电池电量组件BatteryMeterView的时候看到的。 Array是个数组&#xff0c;所有TypedArray也是个容器&#xff0c;基本是用于自定义View里面的&#xff08;至少我目前见过的全部都在自定义View里面&#xff09;。 使用 1.自定义View public class RoundSeekbarView e…

QComboBox 下拉框

文章目录 1、简介2、functions3、Signal QT 官方文档参考地址&#xff1a;https://doc.qt.io/qt-5/qcombobox.html 1、简介 QComboBox 是下拉列表框组件类&#xff0c;它提供一个下拉列表供用户选择&#xff0c;也可以直接当作一个 QLineEdit 用作输入。 2、functions 1、voi…

《GitHub Copilot 操作指南》课程介绍

第1节&#xff1a;GitHub Copilot 概述 一、什么是 GitHub Copilot 什么是 GitHub Copilot GitHub Copilot是GitHub与OpenAI合作开发的编程助手工具&#xff0c;利用机器学习模型生成代码建议。它集成在开发者的集成开发环境&#xff08;IDE&#xff09;中&#xff0c;可以根…

词语的魔力:语言在我们生活中的艺术与影响

Words That Move Mountains: The Art and Impact of Language in Our Lives 词语的魔力&#xff1a;语言在我们生活中的艺术与影响 Hello there, wonderful people! Today, I’d like to gab about the magical essence of language that’s more than just a chatty tool in o…

k8s-认证授权 14

Kubernetes的认证授权分为认证&#xff08;鉴定用户身份&#xff09;、授权&#xff08;操作权限许可鉴别&#xff09;、准入控制&#xff08;资源对象操作时实现更精细的许可检查&#xff09;三个阶段。 Authentication&#xff08;认证&#xff09; 认证方式现共有8种&…

Flowable 加签和减签

一&#xff1a;示例 Deployment deploy repositoryService.createDeployment().name("会签流程").addClasspathResource("processes/CounterSignProcess.bpmn").deploy();ProcessInstance processInstance runtimeService.startProcessInstanceByKey(&qu…

2.【SpringBoot3】用户模块接口开发

文章目录 开发模式和环境搭建开发模式环境搭建 1. 用户注册1.1 注册接口基本代码编写1.2 注册接口参数校验 2. 用户登录2.1 登录接口基本代码编写2.2 登录认证2.2.1 登录认证引入2.2.2 JWT 简介2.2.3 登录功能集成 JWT2.2.4 拦截器 3. 获取用户详细信息3.1 获取用户详细信息基本…

miniconda安装

Miniconda是一个小型版的Anaconda&#xff0c;它包含了一个包管理工具conda和Python。Miniconda适用于那些只需要管理Python包和环境&#xff0c;而不需要Anaconda中包含的大部分科学计算工具的用户。 Miniconda的安装过程相对简单。你可以从清华大学开源软件镜像站下载Minico…

C++:类与对象(上)

C&#xff1a;类与对象&#xff08;上&#xff09; 类的引入类的定义访问限定符类域实例化对象模型this指针 类的引入 C的类是基于C语言的结构体优化出来的&#xff0c;那我们先来看一看C对结构体有哪些优化点。 C语言与C的结构体的类型名称略有区别&#xff0c;我们看一个案…