【Spring篇】Spring相关概念

Spring 家族 荣耀领域端 分布式, 南京有托 代理性质+ 自己的研发团队 task: 1.springmvc 九大组件 springmvc 九大组件,到底包括DispatcherServlet吗,核心组件又是谁_xzb5566的专栏-优快云博客 Spring的IOC bean实例化的三种方式Bean实例化的三种方式 - RosaDarker - 博客园 beanfactory和applicationcontext的区别 spring的作用域 Spring:been的作用域_Jcsim~-优快云博. 阅读详情

🍓系列专栏:Spring系列

🍉个人主页:个人主页

目录

一、介绍

🍊1.为什么要学?

🍍2.学什么?

🍓3.怎么学?

二、Spring相关概念

🍒1.Spring家族

🍅2.了解Spring发展史

🍐3.Spring系统架构

三、Spring核心概念

🥦1.目前项目中的问题

🍄2,IOC、IOC容器、Bean、DI

四、图书推荐


一、介绍

对于一门新技术,我们需要从 为什么要学 、 学什么 以及 怎么学 这三个方向入手来学习。那对于 Spring来说:

🍊1.为什么要学?

从使用和占有率看:

  • Spring在市场的占有率与使用率高
  • Spring在企业的技术选型命中率高
  • 所以说,Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>90%

说明 : 对于未使用 Spring 的项目一般都是些比较老的项目,大多都处于维护阶段。
从专业角度看:
  • 随着时代发展,软件规模与功能都呈几何式增长,开发难度也在不断递增,该如何解决?
  • Spring可以简化开发,降低企业级开发的复杂性,使开发变得更简单快捷
  • 随着项目规模与功能的增长,遇到的问题就会增多,为了解决问题会引入更多的框架,这些框架 如何协调工作?
  • Spring可以框架整合,高效整合其他技术,提高企业级应用开发与运行效率
  • 综上所述,Spring是一款非常优秀而且功能强大的框架,不仅要学,而且还要学好。

🍍2.学什么?

从上面的介绍中,我们可以看到 Spring 框架主要的优势是在 简化开发 和 框架整合 上,至于如何实现就是咱们要学习Spring 框架的主要内容 :
1.简化开发 : Spring 框架中提供了两个大的核心技术,分别是 :
  • IOC
  • AOP

2.事务处理:

  • 事务处理属于Spring中AOP的具体应用,可以简化项目中的事务管理,也是Spring技术中的一 大亮点。
3.框架整合: Spring 在框架整合这块已经做到了极致,它可以整合市面上几乎所有主流框架,比
如 :
  • MyBatis
  • MyBatis-plus
  • Struts
  • Struts2
  • Hibernate

🍓3.怎么学?

学习Spring框架设计思想
  • 对于Spring来说,它能迅速占领全球市场,不只是说它的某个功能比较强大,更重要是在它的 思想上。
学习基础操作,思考操作与思想间的联系
  • 掌握了Spring的设计思想,然后就需要通过一些基础操作来思考操作与思想之间的关联关系

学习案例,熟练应用操作的同时,体会思想

  • 会了基础操作后,就需要通过大量案例来熟练掌握框架的具体应用,加深对设计思想的理解。
介绍完为什么要学、学什么和怎么学Spring框架后,大家需要重点掌握的是:
  • Spring很优秀,需要认真重点的学习
  • Spring的学习主线是IOC、AOP、声明式事务和整合MyBais
接下来,咱们就开始进入 Spring 框架的学习

二、Spring相关概念

🍒1.Spring家族

官网:https://spring.io,从官网我们可以大概了解到:

  • Spring能做什么:用以开发web、微服务以及分布式系统等,光这三块就已经占了JavaEE开发 的九成多。
  • Spring并不是单一的一个技术,而是一个大家族,可以从官网的Projects中查看其包含的所有技术。
Spring 发展到今天已经形成了一种开发的生态圈 ,Spring 提供了若干个项目 , 每个项目用于完成特定的功能。
  • Spring已形成了完整的生态圈,也就是说我们可以完全使用Spring技术完成整个项目的构 建、设计与开发。
  • Spring有若干个项目,可以根据需要自行选择,把这些个项目组合起来,起了一个名称叫全家 桶,如下图所示

说明 :
图中的图标都代表什么含义,可以进入  https://spring.io/projects    网站进行对比查看。
这些技术并不是所有的都需要学习,额外需要重点关注 Spring Framework 、 SpringBoot 和
SpringCloud :
  • Spring Framework:Spring 框架,是 Spring 中最早最核心的技术,也是所有其他技术的
    基础。
  • SpringBoot:Spring 是来简化开发,而 SpringBoot 是来帮助 Spring 在简化的基础上能
    更快速进行开发。
  • SpringCloud:这个是用来做分布式之微服务架构的相关开发。
除了上面的这三个技术外,还有很多其他的技术,也比较流行,如
SpringData,SpringSecurity 等,这些都可以被应用在我们的项目中。我们今天所学习的
Spring 其实指的是 Spring Framework 。

🍅2.了解Spring发展史

接下来我们介绍下Spring Framework这个技术是如何来的呢?

Spring发展史
  • IBM(IT公司-国际商业机器公司)在1997年提出了EJB思想,早期的JAVAEE开发大都基于该思想。
  • Rod Johnson(Java和J2EE开发领域的专家)在2002年出版的Expert One-on-One J2EE Design and Development ,书中有阐述在开发中使用EJB该如何做。
  • Rod Johnson在2004年出版的Expert One-on-One J2EE Development without EJB ,书中提 出了比EJB思想更高效的实现方案,并且在同年将方案进行了具体的落地实现,这个实现就是 Spring1.0。
  • 随着时间推移,版本不断更新维护,目前最新的是Spring5
  • Spring1.0是纯配置文件开发
  • Spring2.0为了简化开发引入了注解开发,此时是配置文件加注解的开发方式
  • Spring3.0已经可以进行纯注解开发,使开发效率大幅提升,我们的课程会以注解开发为主
  • Spring4.0根据JDK的版本升级对个别API进行了调整
  • Spring5.0已经全面支持JDK8,现在Spring最新的是5系列所以建议大家把JDK安装成1.8版
本节介绍了 Spring 家族与 Spring 的发展史,需要大家重点掌握的是 :
  • 今天所学的Spring其实是Spring家族中的Spring Framework
  • Spring Framework是Spring家族中其他框架的底层基础,学好Spring可以为其他Spring框架的学习打好基础

🍐3.Spring系统架构

前面我们说 spring 指的是 Spring Framework, 那么它其中都包含哪些内容以及我们该如何学习这个
框架 ?
  • Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基。
  • Spring Framework的发展也经历了很多版本的变更,每个版本都有相应的调整
  • Spring Framework 的 5 版本目前没有最新的架构图,而最新的是 4 版本,所以接下来主要研究的是4 的架构图

(1)核心层
  • Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块
(2)AOP层
  • AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前提下对其进行功能增强
  • Aspects:AOP是思想,Aspects是对AOP思想的具体实现
(3)数据层
  • Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
  • Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
  • Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现,也是后期学习的重点内容
(4)Web层
  • 这一层的内容将在SpringMVC框架具体学习
(5)Test层
  • Spring主要整合了Junit来完成单元测试和集成测试

三、Spring核心概念

在 Spring 核心概念这部分内容中主要包含 IOC/DI 、 IOC 容器 和 Bean , 那么问题就来了,这些都是什
么呢 ?

🥦1.目前项目中的问题

要想解答这个问题,就需要先分析下目前咱们代码在编写过程中遇到的问题:

 

(1) 业务层需要调用数据层的方法,就需要在业务层 new 数据层的对象
(2) 如果数据层的实现类发生变化,那么业务层的代码也需要跟着改变,发生变更后,都需要进行编译打包和重部署
(3) 所以,现在代码在编写的过程中存在的问题是: 耦合度偏高
针对这个问题,该如何解决呢 ?

我们就想,如果能把框中的内容给去掉,不就可以降低依赖了么,但是又会引入新的问题,去掉以后程序能运行么?
答案肯定是不行,因为 bookDao 没有赋值为 Null ,强行运行就会出空指针异常。
所以现在的问题就是,业务层不想 new 对象,运行的时候又需要这个对象,该咋办呢 ?
针对这个问题, Spring 就提出了一个解决方案 :
  • 使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象, 这种实现思就是Spring的一个核心概念 

🍄2,IOC、IOC容器、Bean、DI

1.IOC(Inversion of Control)控制反转

(1) 什么是控制反转呢?
使用对象时,由主动 new 产生对象转换为由 外部 提供对象,此过程中对象创建控制权由程序转移到
外部,此思想称为控制反转。
  • 业务层要用数据层的类对象,以前是自己new的
  • 现在自己不new了,交给别人[外部]来创建对象
  • 别人[外部]就反转控制了数据层对象的创建权
  • 这种思想就是控制反转
(2)Spring 和 IOC 之间的关系是什么呢 ?
  • Spring技术对IOC思想进行了实现
  • Spring提供了一个容器,称为IOC容器,用来充当IOC思想中的"外部"
  • IOC思想中的别人[外部]指的就是Spring的IOC容器
(3)IOC 容器的作用以及内部存放的是什么 ?
  • IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象
  • 被创建或被管理的对象在IOC容器中统称为Bean
  • IOC容器中放的就是一个个的Bean对象
(4) 当 IOC 容器中创建好 service 和 dao 对象后,程序能正确执行么 ?
  • 不行,因为service运行需要依赖dao对象
  • IOC容器中虽然有service和dao对象
  • 但是service对象和dao对象没有任何关系
  • 需要把dao对象交给service,也就是说要绑定service和dao对象之间的关系
像这种在容器中建立对象与对象之间的绑定关系就要用到 DI:
2.DI ( Dependency Injection )依赖注入
(1) 什么是依赖注入呢 ?
在容器中建立 bean 与 bean 之间的依赖关系的整个过程,称为依赖注入
  • 业务层要用数据层的类对象,以前是自己new的
  • 现在自己不new了,靠别人[外部其实指的就是IOC容器]来给注入进来
  • 这种思想就是依赖注入
(2)IOC 容器中哪些 bean 之间要建立依赖关系呢 ?

 这个需要程序员根据业务需求提前建立好关系,如业务层需要依赖数据层,service就要和dao建立依赖关系

介绍完 Spring 的 IOC 和 DI 的概念后,我们会发现这两个概念的最终目标就是 : 充分解耦 ,具体实现靠 :
  • 使用IOC容器管理bean(IOC)
  • 在IOC容器内将有依赖关系的bean进行关系绑定(DI)
  • 最终结果为:使用对象时不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系.

四、图书推荐

 本次送书 2 本   评论区抽2位小伙伴送书
活动时间:截止到 2023-04-14 14:00:00

抽奖方式:利用程序进行抽奖。

参与方式:关注博主、点赞、收藏,评论区评论 "人生苦短,我用Java!"

   迫不及待的小伙伴也可以了解详情:

 Spring Cloud 微服务快速上手

🍓 获奖名单🍓

 

名单公布时间: 2023-04-14 14:00:00

 

冷兮雪

LinAlpaca

【面试题】10.Spring相关 1. 什么是 Spring 框架? Spring 是一种轻量级开发框架,旨在提高开发人员的开发效率以及系统的可维护。 Spring包含很多模块,分别是:核心容器、数据访问/集成,、Web、AOP、工具、消息和测试模块。例如:Core Container 中的 Core 组件是Spring 所有组件的核心,Beans 组件和 Context 组件是实现IOC和依赖注入的基础,AOP组件用来实现面向... 阅读详情

相关推荐

Spring核心概念

Spring核心概念

01-Spring家族和发展史

在Spring的发展历史中,最重要的里程碑事件包括:2004年发布1.0版、2006年发布2.0版、2009年发布3.0版、2013年发布4.0版和Spring Boot项目、2014年发布Spring Cloud项目。它逐渐演变为一个全面的企业级开发框架,具有众多的模块和组件,包括IoC容器、AOP框架、数据访问、Web开发、集成等。Rod Johnson意识到了这一点,并希望开发一款框架来简化Java应用程序的开发和维护,他利用他的经验、知识和对企业应用开发的理解,创造了Spring框架。

记录java学习日常~ 965

智能化运维(AIOps)

• 调查显示,54.79%的企业当前着重关注智能运维的质量领域(包括异常检测、告警收敛、根因分析、 故障处置等)能力建设,其次45.77%的企业关注效率领域,45.49%的企业关注成本领域,30.82%的 企业关注安全领域。从目前的发展情况来看,现阶段AIOps能力大多集中在L2级别, 主要以系统辅助分析,帮助人工进行决策和操作为主,较为领先的 能力实践可以达到L3级别,而L4和L5级别随着AIOps的技术发展 和能力的逐步增强,将是未来智能运维能力建设的发展方向和目标。

追求更专业的设计 3097

认识Spring家族成员

认识Spring家族成员前言一、Spring家族成员二、介绍1.SpringFrameWork的设计理念:1.选择无处不在2.向后兼容3.代码编写严格2.SpringBoot的设计理念:用最少的时间与精力构建spring程序1.快2.开箱即用3.提供各种非功能特性4.不用生成代码,没有xml配置1.SpringCloud的设计理念:简化分布式系统开发 前言 所有内容都是本人看完《玩转Spring全家桶》编写,将其作为自己的看课笔记以及总结进行编写 一、Spring家族成员 Spring家族成员内被大家

weixin_45445461的博客 885

Rider高效调试UE引擎:无需编译源码的符号配置指南

本文提供了一份详尽的Rider高效调试UE引擎指南,核心在于无需编译源码即可配置调试符号。通过Epic启动器下载官方PDB文件,并在Rider中正确配置外部符号服务器路径,开发者能在10分钟内实现对引擎内部代码(如AActor::Tick)的源码级断点调试、变量查看和调用堆栈分析,极大提升问题排查效率。

weixin_29011239的博客 340

数据驱动AI落地:从业务价值到技术实践的全链路方法论

以数据驱动为核心,围绕 AI 落地全链路展开:先建全域数据体系(拉通内外部数据、治理数据质量),再将 AI 嵌入研发、制造、营销、服务等业务链路解决痛点,搭配混合算力架构保障技术落地,辅以 “小场景试错 - 复制” 战略、跨部门团队等方法论。结合美的集团数字化转型实践,最终实现 AI 对业务降本、增效、增收的价值,为企业 AI 转型提供可复用路径。

专注数据驱动领域原创分享。拆解从数据采集、建模分析到业务价值落地的全链路实践,聊决策逻辑、技术工具与场景案例。用通俗语言讲透数据如何赋能业务,与同路人共探数据价值。 1892

spring 家族Spring、SpringMVC、SpringBoot、SpringCloud

一、spring和springMvc: spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决方案; springMvc是spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发...

ation_work的专栏 624

R 分析裂区试验设计

裂区试验有主区部分和副区部分, 因而有主区部分误差(误差 a,简记为Ea )和副区部分误差(误差b,简记为Eb) 分别用于测验主区处理以及副区处理和主、副互作的显著性。对同一个二因素试验资料作自由度和平方和的分解,则可发现随机区组的误差项自由度和平方和分别为DFe、SSe,而裂区设计有两个误差项,其自由度和平方和分别为DFEa,DFEb, SSEa, SSEb。而区组,处理效应等各个变异项目的自由

samhuairen的专栏 8934

通俗易懂!Spring家族三剑客:Spring、Spring Boot、Spring Cloud 完全解读

Spring家族三剑客简明指南 Spring是Java开发的基石,提供IoC容器和AOP两大核心功能,但配置复杂。Spring Boot是其"懒人版",通过自动配置、起步依赖和内嵌服务器,实现快速开发。Spring Cloud则基于Boot构建微服务生态,提供注册中心、熔断、网关等组件,解决分布式系统问题。三者关系:Spring是地基,Boot是建房工具,Cloud是物业管理。当前主流组合为Boot+Cloud,传统Spring正被淘汰。学习路径建议:先掌握Boot,再进阶Cloud,最

m0_57545130的博客 1055

Xilinx FPGA 100G RDMA开发实战:基于AXI Lite配置的ROCE V2高速通信系统搭建

本文详细介绍了在Xilinx FPGA上搭建100G ROCE V2高速通信系统的实战过程。通过分析RDMA技术优势与FPGA实现的必要性,重点阐述了基于AXI Lite接口配置ERNIC IP核的关键步骤,包括硬件系统构建、驱动开发及与商用网卡的互通测试,旨在实现兼具高性能与灵活性的网络加速方案。

js777的博客 576

LangChain + PlayWright实战:5分钟搞定网页自动化测试(附完整代码)

本文详细介绍了如何利用LangChain与PlayWright构建智能网页自动化测试系统。通过环境配置、核心架构设计、实战Agent构建及性能优化等步骤,开发者可以快速实现高效的Web操作自动化,提升测试效率。文章还提供了完整代码示例和典型问题解决方案。

weixin_27791839的博客 239

idea__Spring5框架01——概念、入门、基于XML的IOC环境搭建

首先先说一点:spring属于框架的内容,那么既然是框架,就不适合初学者学习,必须要有扎实的java SE基础,跟java web基础 学习spring之前,我们要理解吃透几个概念 什么是程序的耦合? 它指的是程序间的依赖关系:如:表现层依赖业务层,业务层依赖持久层,如: private CategoryDao categoryDao = new CategoryDao(); 如何解耦? 没有学习Spring之前,我们是这样解耦的: 第一步:创建对象的时候,使用反射来创建,如:

weixin_42858422的博客 1303

高匿反爬实战:Python打造无痕爬虫,规避风控系统追踪

网络层匿踪:核心是使用住宅IP代理池,按真实用户IP画像匹配,控制请求频率;协议层匿踪:动态生成请求头(每次都不同),参数添加随机噪声,避免规律化;行为层匿踪:模拟人类的非规律行为(贝塞尔轨迹、随机停顿、非精准点击);设备层匿踪:伪造Canvas/WebGL指纹,禁用webdriver标识,每次请求更换指纹;核心原则:无痕爬虫的本质是“无限接近真实用户”,所有维度都要消除爬虫特征,而非单一维度伪装。打造真正的无痕爬虫需要全维度的匿踪策略,单一维度的伪装极易被高级风控系统识别。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2642

Java面试通关要点汇总集(基础篇+核心篇+框架篇+微服务篇)

基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 session 与 cookie 区别 session 分布式处理 JDBC 流程 MVC 设计思想 equals 与 == 的区别 集合 List 和 Set 区别 List 和 Map 区别 A.

如果频繁就私信一下呢 296

基于simulink的预测电流控制策略的三相逆变器仿真

本文详细介绍了在Simulink中实现基于预测电流控制策略的三相逆变器仿真方法。主要内容包括:准备工作(安装必要软件及工具箱)、构建三相逆变器基础模型、设计预测电流控制器(包含状态空间建模和控制器设计)、实现控制逻辑、添加示波器观察输出、配置仿真参数以及运行仿真分析结果。通过MATLAB代码示例和Simulink模块说明,展示了如何选择最优开关状态来最小化电流误差。该仿真方法为研究快速响应、高精度的逆变器控制提供了实用工具,但需注意实际应用中可能需要的调试工作。

amy_mhd的博客 274

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spring入门第六讲——Spring AOP的XML开发

Spring的bean管理(注解方式)注解:代码中的特殊标记,注解可以使用在类、方法、属性上面,使用注解可实现一些基本的功能。注解的写法是@注解名称(属性=属性值)。使用注解创建对象第一步,创建Web项目,引入Spring的开发包 除了导入Spring基本的Jar包外(可参考《Spring的概述》一文),还须导入Spring注解的Jar包,如下: 第二步,编写相关的类 在src目录下创建一

李阿昀的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring 根据Bean注册的名称获取Bean对象

根据Bean注册的名称获取Bean对象 一个通过Bean名称获取Bean的对象实例的一个类,现在复习下Spring,再此处记录下: package net.shopxx.util; import org.springframework.beans.BeansExcept

sz_bdqn的专栏 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

撸了35天,奉上最强“全家桶”脑图+面试+进阶学习:Spring+Cloud+Security+Boot+MVC+Spring5

所有的Spring、SpringCloud、SpringBoot、SpringMVC、Spring5、SpringSecurity等架构脑图都是纯手绘的,文章里无法上传原件xmind,所以全部是都是图片展示。且在面试篇,也列举出了所有相关的面试问题,完整的解析也已整理成相应的pdf。

javaAnPou的博客 475

spring 框架学习

spring框架学习

⛄ 1130

【黑马程序员pink老师前端】网页相关概念

1.网页组成 2.常用浏览器 3.web标准

⛄ 868

零基础Spring 入门

文章目录零基础Spring 入门Spring核心概念Spring IOC 概念控制反转:DI: Dependency Injection 依赖注入好处:导入Spring 所需的jar配置spring文件创建接口创建实现类创建测试类使用注解实现IOC的配置使用注解定义Bean使用注解实现Bean组件装配加载注解定义的BeanString AOP 概念面向切面的编程基本概念String AOP 操...

qq_45320191的博客 927

【Spring篇】详解AOP相关知识

AOP(面向切面编程)是Spring框架中的重要组成部分。它允许在不修改原代码的情况下为程序动态地添加新的功能。如果你也想提高Spring应用的可扩展性,本文将带你深入学习Spring AOP的核心概念。

小吉妙妙屋 5259

Spring相关文章汇总篇【Spring,SpringBoot,SpringCloud等】

  因为Spring框架包含的组件比较多,写的博客内容也比较多,虽然有分专栏但是依然不方便查找,所以专门用一篇文章来记录相关文章,会不定期更新。 一、Spring 1.基础内容 Spring介绍 Spring-IOC实现【01-XML配置方式】 Spring-IOC实现【02-XML配置方式案例】 Spring-IOC实现【03-其他实现方式】 Java代理模式-AOP必备知识 Spring之AO...

波波烤鸭的博客 4万+
上一篇: Ubuntu上搭建网站【建立数据隧道,降低开支】
下一篇: 低代码平台这么多,能用来找工作可能只有它了
热爱编程的小白白
热爱编程的小白白 新星计划导师 新星计划导师
博客等级 码龄5年 11万+粉丝 243原创
评论 102
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值