码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Spring篇】简述IoC入门案例,DI入门案例


    🎊专栏【Spring】
    🍔喜欢的诗句:天行健,君子以自强不息。
    🎆音乐分享【如愿】
    🎄欢迎并且感谢大家指出小吉的问题🥰

    文章目录

    • 🎄Spring Framework系统架构
    • 🎆Spring核心概念
      • 🌺IoC控制反转
      • 🌺DI依赖注入
      • 🛸目标
      • 🛸最终效果
    • 🍔IoC入门案例
      • 🎈步骤
        • 🏳️‍🌈导入Spring坐标
        • 🏳️‍🌈定义Spring管理的类(接口)
        • 🏳️‍🌈创建Spring配置文件,配置对应的类作为Spring管理的bean
        • 🏳️‍🌈初始化IoC容器(Spring核心容器 / Spring容器),通过容器获取bean
    • 🍔DI入门案例
      • 🎈步骤
        • 🏳️‍🌈删除使用new的形式创建对象的代码
        • 🏳️‍🌈提供依赖对象对应的setter方法
        • 🏳️‍🌈配置service与dao之间的关系
      • 🎈代码实现

    在这里插入图片描述

    🎄Spring Framework系统架构

    在这里插入图片描述

    🎆Spring核心概念

    Spring框架中核心的要属IoC(控制反转)和DI(依赖注入)了。这两大特性是我们入门Spring时首先需要理解掌握的内容。那么IoC和DI的思想是什么?应该如何编写代码实现基本的注入呢?今天这篇文章就带你快速实战Spring最基础的案例,一步步揭开IoC和DI的神秘面纱。

    通过示例代码,结合简单说明,你可以快速理解IoC/DI核心思想,并学会如何利用Spring容器实现对象的注入。这将打下你学习Spring框架的基础,让你通过简单实操对这些概念有更直观感受。跟随本文,开始Spring之旅吧!

    🌺IoC控制反转

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

    spring技术对IoC思想进行了实现

    • spring提供了一个容器,称为IoC容器,用来充当IoC思想中的“外部”
    • IoC容器负责对象的创建,初始化等一系列工作,被创建或被管理的对象在IoC容器里面称为Bean

    🌺DI依赖注入

    在容器里面建立bean与bean之间的依赖关系,称为依赖注入
    在这里插入图片描述

    🛸目标

    充分解耦

    • 使用IoC容器管理bean(IoC)
    • 在IoC容器内将有依赖关系的bean进行关系绑定(DI)

    🛸最终效果

    使用对象不仅可以直接从IoC容器里面获取,并且获取到的bean,已经绑定了所有的依赖关系

    🍔IoC入门案例

    🎈步骤

    🏳️‍🌈导入Spring坐标

    在这里插入图片描述

    🏳️‍🌈定义Spring管理的类(接口)

    在这里插入图片描述

    🏳️‍🌈创建Spring配置文件,配置对应的类作为Spring管理的bean

    在这里插入图片描述

    🏳️‍🌈初始化IoC容器(Spring核心容器 / Spring容器),通过容器获取bean

    在这里插入图片描述

    🍔DI入门案例

    🎈步骤

    🏳️‍🌈删除使用new的形式创建对象的代码

    在这里插入图片描述

    🏳️‍🌈提供依赖对象对应的setter方法

    在这里插入图片描述

    🏳️‍🌈配置service与dao之间的关系

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

    🎈代码实现

    首先创建一个maven项目
    在pom.xml文件中添加下面的代码

     <dependencies>
            <dependency>
                <groupId>org.springframeworkgroupId>
                <artifactId>spring-contextartifactId>
                <version>5.2.10.RELEASEversion>
            dependency>
            <dependency>
                <groupId>junitgroupId>
                <artifactId>junitartifactId>
                <version>4.13.1version>
                <scope>testscope>
            dependency>
        dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    然后点击右边框的maven,刷新一下
    看到有依赖,即可
    在这里插入图片描述
    然后右击resource,创建xml文件
    在这里插入图片描述
    在这里插入图片描述

    剩下的代码我放到网盘里面了,里面是完整代码,需要的请自取
    我用夸克网盘分享了「spring_01_quickstart」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/24e5655c7d18


    通过这两个简单的示例,我们已经领略了Spring IoC和DI核心思想的魅力——解耦和注入。当然实际应用中,Spring的功能远不止这些。但如果能把这些基础概念牢记于心,那么您已经准备好开启Spring框架的学习和应用之旅了。

    学到这里,你是否也开始有些Chapter Spring的欲望了呢?那么就在评论区留下你的想法吧,我们一起学习这个 Java世界的扛把子框架,see you next!
    在这里插入图片描述

  • 相关阅读:
    群狼调研(长沙消费者满意度调查) | 参展观众满意度调查流程
    深入理解红黑树
    LeetCode第 85 场双周赛总结
    C++ string模拟实现
    App自动化测试怎么做?实战分享App自动化测试全流程
    Mybatis-Plus入门
    Centos7 ElasticSearch集群搭建
    .Net&Web前端-大三-零食系统-零食管理
    计算机竞赛 深度学习卫星遥感图像检测与识别 -opencv python 目标检测
    一个是证书服务和web安全访问配置,一个是PGP的使用
  • 原文地址:https://blog.csdn.net/m0_72853403/article/details/133580129
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号