Spring学习笔记:Day2

news2025/7/18 6:12:48

昨天定的学习计划发现通过文心4.0来实现不靠谱,坑太多,今天开始跟随B站进行学习,争取10-15天学习一遍,冲啊!
地址:001-课程介绍_哔哩哔哩_bilibili


今日规划:

pt 001 - pt 018,提到的全部复现一遍。


笔记:

pt 001 - pt 002:

按照地址来将管理工具maven安装:轻松搞定Maven安装与配置_哔哩哔哩_bilibili

pt 003:

表示层web->业务层service->持久层dao,从test来调用

但是每个模块均会用到UserDaoImplForMySQL,这样在拓展时,牵一发而动全身,会影响之前正常运行的代码。

pt 004:

OCP开闭原则(Open-Closed Principle)
    * 什么是OCP?
        OCP是软件七大开发原则当中最基本的一个原则:开闭原则
        对什么开?对扩展开放。
        对什么闭?对修改关闭。

    * OCP原则是最核心的,最基本的,其他的六个原则都是为这个原则服务的。
    * OCP开闭原则的核心是什么?
        只要你在扩展系统功能的时候,没有修改以前写好的代码,那么你就是符合OCP原则的。
        反之,如果在扩展系统功能的时候,你修改了之前的代码,那么这个设计是失败的,违背OCP原则。
    * 当进行系统功能扩展的时候,如果动了之前稳定的程序,修改了之前的程序,之前所有程序都需要进行重新测试。这是不想看到的,因为非常麻烦。

pt 005:

依赖倒置原则(DIP原则(Dependency Inversion Principle)
    * 什么是依赖倒置原则?
        面向接口编程,面向抽象编程,不要面向具体编程。(底层的模块不要具体的实现,只提供接口(否则拓展时要改之前的代码,具体了))
    * 依赖倒置原则的目的?
        降低程序的耦合度,提高扩展力。
    * 什么叫做符合依赖倒置?
        上 不依赖 下,就是符合。
    * 什么叫做违背依赖倒置?
        上 依赖 下,就是违背。
        只要“下”一改动,“上”就受到牵连。

pt 006:

当前程序的设计,显然既违背OCP,又违背DIP,怎么办?
    可以采用“控制反转”这种编程思想来解决这个问题。

    控制反转:IoC(Inversion of Control)
    反转是什么呢?
        反转的是两件事:
            第一件事:我不在程序中采用硬编码的方式来new对象了。(new对象我不管了,new对象的权利交出去了。)
            第二件事:我不在程序中采用硬编码的方式来维护对象的关系了。(对象之间关系的维护权,我也不管了,交出去了。)

通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。

    控制反转:是一种编程思想。或者叫做一种新型的设计模式。由于出现的比较新,没有被纳入GoF23种设计模式范围内。

pt 007:

Spring框架

    * Spring框架实现了控制反转IoC这种思想
        Spring框架可以帮你new对象。
        Spring框架可以帮你维护对象和对象之间的关系。
    * Spring是一个实现了IoC思想的容器。
    * 控制反转的实现方式有多种,其中比较重要的叫做:依赖注入(Dependency Injection,简称DI)。
    * 控制反转是思想。依赖注入是这种思想的具体实现。
    * 依赖注入DI,又包括常见的两种方式:
        第一种:set注入(执行set方法给属性赋值)
        第二种:构造方法注入(执行构造方法给属性赋值)
    * 依赖注入 中 “依赖”是什么意思? “注入”是什么意思?
        依赖:A对象和B对象的关系。
        注入:是一种手段,通过这种手段,可以让A对象和B对象产生关系。
        依赖注入:对象A和对象B之间的关系,靠注入的手段来维护。而注入包括:set注入和构造注入。

pt 008:

三大框架SSM:1)Spring 8大模块 2)SpringMVC (Spring的一部分) 3)MyBatis(操作数据库)

pt 009:

Spring特点

1.轻量:

        从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。

        Spring是非侵入式的:Spring应用中的对象不依赖于Spring的特定类。

2.控制反转

        Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

3.面向切面

        Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

4.容器

        Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

5.框架

        Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

pt 010:

下载...略过:Spring 中文网 官网

pt 011:

jar包的简介:

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

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

相关文章

Vue3实现滚动到容器底部时发送请求,加载新数据

问题来源 在项目中出现了需要在容器滚动到底部时,加载新的数据的需求,以下是解决的方案笔记 解决 画了个流程图: 如图,先添加一个动态加载的图标,还有全部数据载完的《到底啦...》 大概这么个样子,之后呢…

【C++ Primer Plus学习记录】第5章复习题

1.入口条件循环和出口条件循环之间的区别是什么?各种C循环分别属于其中的哪一种? C提供了3种循环:for、while和do while循环。for和while循环都是入口条件循环,意味着程序将在执行循环体中的语句之前检查测试条件。do while循环是…

【IDEA】导入项目发现目录消失

错误截图 这个目录里我是有文件的,但是导入到idea后却看不见文件 错误原因: 删除目录的时候不小心将.iml文件给删除了! 解决办法 进入项目结构 选择模块,点击 导入模块 选择需要导入的模块的目录 从现有项目创建模块 --> 下…

智慧用电安全动态监控系统

智慧用电安全动态监控系统是一种先进的电力监控技术系统,它运用物联网、大数据、云计算等先进技术,对电力系统的运行状况进行实时监控和预警。 该系统依托电易云-智慧电力物联网,通过智能传感终端采集电气线路的实时运行数据,客户…

Redis的高可用模式

1. 什么是高可用? 高可用(High Availability, HA)是指在信息技术中确保系统、服务或应用程序在绝大多数时间内都是可操作和可访问的能力。这通常涉及以下几个关键方面: 最小化停机时间: 高可用系统的目标是减少因硬件故障、系统升…

【面试HOT200】二叉树——广度优先搜索篇

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于【CodeTopHot200】进行的,每个知识点的修正和深入主要参…

怎样使用rtsp,rtmp摄像头低延时参于Web视频会议互动直播

业务系统中有大量的rtsp,rtmp等监控直播设备,原大部分都是单一业务监控直播之类,目前很多业务需要会议互动,需要监控参会,提出需摄像头拉流参会的需求,由于rtmp,rtsp原生不支持web播放&#xff…

springboot足球社区管理系统

springboot足球社区管理系统 成品项目已经更新!同学们可以打开链接查看!需要定做的及时联系我!专业团队定做!全程包售后! 2000套项目视频链接:https://pan.baidu.com/s/1N4L3zMQ9nNm8nvEVfIR2pg?pwdekj…

activemq启动成功但web管理页面却无法访问

前提: 在linux启动activemq成功!本地能ping通linux 处理方案: 确定防火墙是否关闭, 有两种处理方案:第一种-关闭防火墙;第二种-暴漏8161和61616两个端口 netstat -lnpt查看8161和61616端口 注意&#xf…

【超全】React学习笔记 下:路由与Redux状态管理

React学习笔记 React系列笔记学习 上篇笔记地址:【超全】React学习笔记 上:基础使用与脚手架 中篇笔记地址:【超全】React学习笔记 中:进阶语法与原理机制 React路由概念与理解使用 1. 引入 React路由是构建单页面应用(SPA, Sin…

【斗破年番】小医仙沐浴以毒攻毒,彩鳞怒杀蝎毕岩,泪目暂时下线

Hello,小伙伴们,我是拾荒君。 《斗破苍穹年番》国漫更新啦!刚更新,拾荒君就和我的小伙伴们去观看了。在斗破年番第73集中,蝎毕岩为了击败萧炎,不惜耗尽全身实力释放出魔毒斑,假装攻击小医仙,却…

C++ 基础篇

目录 C开发概述 C特点 C跨平台的原因 C编译器 C库 操作系统API C基本概念 注释 变量 常量 两种定义常量方式的区别 表示符命名规则 常见的关键字 数据类型 整型 浮点数 字符型 转义字符 字符串型 布尔类型 运算符 算术运算符 赋值运算符 比较运算符 逻…

linux常用命令-find命令与scp命令详解(超详细)

文章目录 前言一、find命令介绍1. find命令简介2. find命令的基本语法3. 常用的find命令选项和表达式 二、find命令示例用法1. 按照名称进行搜索2. 按照类型进行搜索3. 按照修改时间进行搜索4. 按照文件大小进行搜索5. 对搜索到的文件执行指定的命令6. 删除搜索到的文件 三、sc…

affinity好用还是ps好用?2024年最新功能解析

多年来,ps已经有了大量竞争对手。然而每次Photoshop都足以保持其领先地位。开源GIMP和Pixelmator都试图取代Photoshop,不过Photoshop对此不屑一顾。英国Serif公司研发了一款名为Affinity Photo的软件,声称可以叫板ps。今天我们看看有最有可能…

KRaft使用SASL_PLAINTEXT进行认证

需要有KRaft相关的基础,才行。可参阅之前学习记录Kafka 一、配置 首先需要了解SASL的含义,SASL全称为Simple Authentication and Security Layer,它主要是用于在客户端和服务器之间提供安全的身份验证机制。 Kafka 支持以下几种 SASL 验证…

【vue】尚硅谷vue3学习笔记

Vue3快速上手 1.Vue3简介 2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王)耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址:https://github.com/vuejs/vue-next/release…

【C语言之 CJson】学CJson看这一篇就够了

文章目录 前言一、下载CJson二、创建一个json2.1 创建json对象cJSON类型详解 2.2 创建键值对2.3 添加嵌套的 JSON 对象2.4 添加数组创建数组添加元素到数组添加数组到obj 2.5 将 JSON 对象转为字符串2.6 释放内存2.7 示例代码 三、解析json3.1 解析json root3.2 把一个key解析出…

SSM框架(六):SpringBoot技术及整合SSM

文章目录 一、概述1.1 简介1.2 起步依赖1.3 入门案例1.4 快速启动 二、基础配置2.1 三种配置文件方式2.2 yaml文件格式2.3 yaml读取数据方式(3种) 三、多环境开发3.1 yml文件-多环境开发3.2 properties文件-多环境开发3.3 多环境命令行启动参数设置3.4 多…

yolov5 7.0版本部署手机端。通过pnnx导出ncnn。

yolov5 7.0版本部署手机端。通过pnnx导出ncnn。 流程配置ncnn android yolov5导出自己模型的ncnn修改yolo.py文件导出TorchScript文件pnnx转torchscript为ncnn 安卓运行权重路径输入输出anchors 大小类别名generate_proposals方法修改 结果 流程 网络yolov5 的部署已经有很多了…

STM32串口接收不定长数据(接收中断+超时判断)

玩转 STM32 单片机,肯定离不开串口。串口使用一个称为串行通信协议的协议来管理数据传输,该协议在数据传输期间控制数据流,包括数据位数、波特率、校验位和停止位等。由于串口简单易用,在各种产品交互中都有广泛应用。 但在使用串…