6万字《Spring框架从入门到精通》(建议收藏)

Spring Cloud 从入门到精通 Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。 本课程由浅入深带领大家一步步攻克 Spring Cloud 各大模块,接着通过一个实例带领大家了解大型分布式微服务架构的搭建过程,最后深入源码加深对它的了解。 本课程共分为四个部分: 第一部分(第... 阅读详情

Spring

1、简介

spring理念:是现有的技术更加容易使用,本身是一个大杂烩。

  • SSH:Struct2 + Spring + Hibernate
  • SSM: SpringMVC + Spring + Mybatis

1.1、导入包

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.9</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.9</version>
</dependency>
复制代码

1.2、优点

  • spring是开源的免费的容器。
  • spring是一个轻量级的,非入侵式的。
  • 控制反转(IOC),面向切面编程 (AOP)。
  • 支持事务处理,对框架整合的支持。

总结:spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架。

1.3、Spring组成

6万字《Spring框架从入门到精通》(建议收藏)

6万字《Spring框架从入门到精通》(建议收藏)

1.4、拓展

1.Spring Boot 构建一切

1.一个快速开发的脚手架

2.基于SpringBoot可以快速地开发单个微服务

3.约束大于配置!

2.Spring Cloud 协调一切

1.SpringCloud是基于SpringBoot实现的

3.Spring Cloud Data Flow 连接一切

学习SpringBoot的前提,需要完全掌握Spring以及SpringMVC!

2、IOC理论推导

  1. UserDao
  2. UserDaoImp
  3. UserSevice
  4. UserServiceImp

在之前,用户的需求可能会影响原来的代码。

2.1、分析实现

新建一个空白的maven项目

分析实现

我们先用我们原来的方式写一段代码 .

1、先写一个UserDao接口

public interface UserDao {
  public   void getUser();
}
复制代码

2、再去写Dao的实现类

public class UserDaoImp implements UserDao{
    @Override
    public void getUser() {
        System.out.println("默认获取用户的数据");
    }
}
复制代码

3、然后去写UserService的接口

public interface UserService {
    public void getUser();
}
复制代码

4、最后写Service的实现类

public class UserServiceImp implements UserService{

    private UserDao userDao = new UserDaoImp();

    public void getUser(){
        userDao.getUser();
    }
}
复制代码

5、测试一下

@Test
public void MyTest(){
    UserService service = new UserServiceImpl();
    service.getUser();
}
复制代码

这是我们原来的方式 , 一开始大家也都是这么去写的对吧 . 那我们现在修改一下 .

把Userdao的实现类增加一个 .

public class UserDaoMysqlImp implements UserDao{
    @Override
    public void getUser() {
        System.out.println("Mysql获取用户数据!");
    }
}
复制代码

紧接着我们要去使用MySql的话 , 我们就需要去service实现类里面修改对应的实现

public class UserServiceImpl implements UserService {
   private UserDao userDao = new UserDaoMySqlImpl();

   @Override
   public void getUser() {
       userDao.getUser();
  }
}
复制代码

在假设, 我们再增加一个Userdao的实现类 .

public class UserDaoOracleImpl implements UserDao {
   @Override
   public void getUser() {
       System.out.println("Oracle获取用户数据");
  }
}
复制代码

那么我们要使用Oracle , 需要去service实现类里面修改对应的实现 . 假设我们的这种需求非常大 , 这种方式就根本就不适用了, 甚至反人类对吧 , 每次变动 , 需要修改大量代码 . 这种设计的耦合性太高了, 牵一发而动全身 .

那我们如何去解决呢 ?

我们可以在需要用到他的地方 , 不去实现它 , 而是留出一个接口 , 利用set , 我们去代码里修改一下 .

public class UserServiceImpl implements UserService {
   private UserDao userDao;
// 利用set实现
   public void setUserDao(UserDao userDao) {
       this.userDao = userDao;
  }

   @Override
   public void getUser() {
       userDao.getUser();
  }
}
复制代码

现在去我们的测试类里 , 进行测试 ;

public class MyTest {
    public static void main(String[] args) {
        //用户实际调用的是业务层,dao层他们不需要接触!
        UserServiceImp userService = new UserServiceImp();
        ((UserServiceImp) userService).setUserDao(new UserDaoSqlserviceImp());
        userService.getUser();
    }
}
复制代码

使用一个set。

   private UserDao userDao;
      //利用set进行动态实现值的注入
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
复制代码
  • 之前是主动创建对象,控制权在程序猿手上!
  • 使用set之后,程序不再具有主动性,而是变成了被动接受对象。

这种思想,从本质上解决了问题,我们程序猿不用再去管理对象的创建。系统的耦合性大大降低,可以更加专注在业务的实现上!这是IOC的原型!


作者:暴走阿呆
链接:https://juejin.cn/post/7005193533279698975
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Spring框架从入门到精通 初识Spring框架 时代变迁 原始时代我们用一个jsp搞定一切,但如此开发大型项目时我们遇到了问题,前端美化的代码和后端的代码交织,代码中又有html、js、css样式,又有业务逻辑和数据库访问代码,杂乱不清晰,美工和开发打架。 于是mvc分层架构封建时代出现,把我们写代码的地方硬性分成3个地方,Model层封装数据,View视图层页面展现,Controller控制层访问转发。代码之间的耦合度降低。概念有了,需要实际干活的。于是随着mvc分层概念的深入人心,业界涌现出很多实现框架,最著名的莫过于strut 阅读详情

相关推荐

Spring从入门到精通全套教程.zip

本套课程是Spring入门到精通教程,课程包括Spring IoC、Spring AOP(CGLib、JDK动态代理)、Spring整合MyBatis,Spring事务管理等内容。 通过本套课程的学习,你将掌握: 1、 IoC和依赖注入 2、 AOP的原理和实际使用 3、 Spring整合MyBatis项目开发 4、 Spring声明式事务管理

Spring基础

一、初识Spring框架 1、时代变迁 原始时代我们用一个jsp搞定一切,但如此开发大型项目时我们遇到了问题,前端美化的代码和后端的代码交织,代码中又有html、js、css样式,又有业务逻辑和数据库访问代码,杂乱不清晰,美工和开发打架。 于是mvc分层架构封建时代出现,把我们写代码的地方硬性分成3个地方,Model层封装数据,View视图层页面展现,Controller控制层访问转发。代码之间的耦合度降低。概念有了,需要实际干活的。于是随着mvc分层概念的深入人心,业界涌现出很多实现框架,最著名的莫过于s

AimerDaniel的博客 3120

Spring从入门到精通

Spring从入门到精通,带有目录方便阅读,用于商业目的严禁

Spring从入门到精通 | 动力节点老杜

从入门到精通Spring,这一篇就够了! 包括了Spring底层源码和面试题

weixin_54232666的博客 2479

Vue中实现word文档渲染、在线编辑、保存

Vue3对word文档进行渲染、编辑、保存。word转成html,html转成word

h18749849699的博客 1330

of_graph_get_remote_port

isp { compatible = "isp"; core@0 { id = <0>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; ...

wmzjzwlzs的专栏 1166

一篇文章带你学Spring从入门到精通

Spring学习笔记,入门到精通

喵喵喵喵~我是一个程序员而已 911

基于数字图像处理方法的迷宫问题图解 : 基于骨架提取、四邻域

问题是,这条红色的线是人为标记出来的能通的路线,对计算机来看,黑色和红色的线没有任何差异,所以之前的想法压根不起作用。对应于数字图像的表达,就是从远离主干的分支端点出发,如果4邻域中只有一个可以通的道路,那么这个点在分支上。闪电划过,有一道连接了天空和大地,就是迷宫的解,其余的分支就是迷宫中对应的死路。类似这个闪电图,假设图中最粗的主干(迷宫解的路线)是最先形成的,其余的细小的分支是慢慢从主干上形成的。因此,只要在端点的4邻域中,找到可以走的道路,那么一定就是分支,也就是要移除的路线。

Henry的博客 2075

Spring从入门到精通(一)

本文介绍了Spring的部分知识(一) (2)工厂单例模式——解耦 IOC概念:IOC作用:IOC实现: 基于XML的IOC开发配置文件 (2)详解ApplicationContext ApplicationContext是Spring给我们提供的核心容器,其依赖关系如下: 我们发现ApplicationContext继承了BeanFactory。BeanFactory才是顶级容器。(1)这两个核心的容器有什么区别呢?(2)ApplicationContext是一个接口,其

一个很懒的人 1087

【2025最新版】间接平差——以水准网平差为例 (python详细过程版)

水准网间接平差的python代码实现。博客长期更新,本文最新更新时间为:2025年5月20日。

点云侠的博客 1702

OKX 欧易 交易机器人开发基础

接口文档: https://www.okx.com/docs-v5/zh/#overview REST API 常用请求 查看账户余额 结果数据格式: 获取限价 结果格式: 获取指数行情 数据结构: 下单 结果数据: 获取未成交订单列表 返回结果: 撤单 结果结构:

Willin Wang 的全栈升级指南 2万+

❤️六万字《Spring框架从入门到精通》(建议收藏)❤️

❤️ Spring 代码:https://github.com/Donkequan/Spring-Study ❤️ 希望各位博友三连+关注!!! 1、简介 spring理念:是现有的技术更加容易使用,本身是一个大杂烩。 SSH:Struct2 + Spring + Hibernate SSM: SpringMVC + Spring + Mybatis 官网: https://spring.io/projects/spring-framework#overview 官方下载: https://repo.s

... 3296

【微服务】SpringBoot 整合Kafka 项目实战操作详解

SpringBoot 整合Kafka 实战操作详解

congge 5573

❤️爆肝万字!一文最全总结之Spring从入门到入土❤️(建议收藏)

文章目录前言1. Spring概述1.1 介绍2. IoC入门2.1 什么是IoC2.2 IoC入门案例1(基础案例)2.3 IoC入门案例2(依赖注入)2.4 IoC入门案例3(面向接口编程)2.5 IoC入门案例4(整合JUnit4)3. IoC详解3.1 Bean的创建3.2 依赖注入(DI)3.2.1 按照名称注入3.2.2 按照类型注入3.2.3 普通数据注入4 properties数据注入1.1 @.

Maynor的博客 7122

复现论文《大规模风电场电磁暂态高效建模仿真方法》

本文提出了一种针对大规模风电场电磁暂态(EMT)仿真的高效建模方法。通过三种关键技术实现仿真加速:(1)永磁直驱风电机组一体化等效建模,采用节点导纳矩阵降维将25节点机组简化为4端子电路,仿真速度提升1-3个数量级;(2)基于戴维南/诺顿等效和OpenMP并行计算的风电场整体建模,通过串并联叠加实现节点收缩,30台机组仿真加速近万倍;(3)受控源映射解耦方法提高故障仿真灵活性。复现代码展示了核心算法实现,包括导纳矩阵Schur补降维、多进程并行计算框架以及受控源解耦方法。

huanghm88的专栏 279

YOLOv13涨点改进 | 独家创新、Neck特征融合改进篇 | TGRS 2024 | 引入 EFC增强跨层特征相关创新点,含MSEF(多尺度有效融合模块)二次创新模块,助力遥感目标检测涨点

本文提出EFC(增强跨层特征相关)模块改进YOLOv13模型,显著提升小目标检测性能。EFC通过分组特征聚焦(GFF)和多层特征重建(MFR)增强特征融合效率,在小目标检测任务中平均精度(mAP)提升1.7%,同时减少模型计算量。实验验证EFC在VisDrone等数据集上的有效性,改进后的模型能更好地保留小目标细节信息。还提出二次创新模块MSEF,集成通道和位置注意力机制,进一步优化特征表达。文章详细介绍了模块配置方法和yaml文件修改步骤,为小目标检测任务提供了实用的改进方案。

Ai缝合怪、助力小伙伴高效发论文 325

6万字《Spring框架从入门到精通》

面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!存中…(img-5QVer9Uf-1712089394943)][外链图片转存中…(img-9UvUcufh-1712089394943)]

2301_82242844的博客 811

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Spring框架从入门到精通(纯干货,建议收藏)

文章目录概述ioc控制反转配置文件使用spring创建对象给属性赋值set注入构造注入引用类型的自动注入注解简单类型属性注入@Value(掌握)引用类型注入@Autowired引用类型注入@Resource注解和配置文件的对比多配置文件优势组件扫描器AOP面向切面编程@Aspect:表示当前类是切面类@Before:前置通知注解@AfterReturning:后置通知@Around 环绕通知@AfterThrowing:异常通知(了解)@After:最终通知(了解)@Pointcut注解:定义和管理切入点实

weixin_44006686的博客 1954

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

我把面试问烂了的⭐Spring面试题⭐总结了一下(带答案,万字总结,精心打磨,建议收藏)

我把面试问烂了的⭐Spring⭐面试题总结了一下(带答案,万字总结,精心打磨,建议收藏)

java程序鱼的博客 3万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

4万字!Spring Security 从入门到精通!

是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。一般来说中大型的项目都是使用来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。一般Web应用的需要进行认证和授权。认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户授权:经过认证后判断当前用户是否有权限进行某个操作而认证和授权也是SpringSecurity作为安全框架的核心功能。

程序员高级码农的博客 1135
上一篇: java中this关键字的使用
下一篇: Spring Cloud 组件原理系列(二)Hystrix篇
java111112313213
博客等级 码龄5年 15粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值