黑马程序员ssm总结[大全版本,有对应pdf+源码](spring->springmvc-->springboot-->maven高级->cloud微服务)

本文档详细介绍了SSM(Spring、SpringMVC、Mybatis)到SpringBoot的演进过程,涵盖了Spring核心容器、注解开发、与Mybatis的整合、AOP、事务管理、Maven模块化开发、SpringBoot、Nacos配置中心和服务发现等内容。通过实例解析了服务注册、服务调用、负载均衡以及服务发现的实现。强调了配置中心在微服务架构中的重要性,以及Nacos在服务发现和配置管理中的作用。此外,还讨论了不同环境下的配置管理、Feign和Ribbon的负载均衡策略,以及Zuul作为微服务网关的功能。
摘要由CSDN通过智能技术生成

前言

pdf+源码(大全),对应视频:https://www.bilibili.com/video/BV1VJ411X7xXp=20&vd_source=0e4ada3d15f80172cb72c52e0fcabd05
自我感觉黑马课程比官方文档好,新手友好,强推!
看文档必看视频效率高,理解更透,一遍看不懂,反复看!
有问题,欢迎与我讨论: qq:1657019234
黑马程序员ssm资料(从spring–>springmvc–>springboot–>maven高级->cloud微服务)

文章目录

耦合性可以是低耦合性(或称为松散耦合),也可以是高耦合性(或称为紧密耦合)。以下列出一些耦合性的分类,从高到低依序排列:

  • 内容耦合(content coupling,耦合度最高):也称为病态耦合(pathological coupling)当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。
  • 共用耦合/公共耦合(common coupling):也称为全局耦合(global coupling.)指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。
  • 外部耦合(external coupling):发生在二个模块共用一个外加的数据格式、通信协议或是设备界面,基本上和模块和外部工具及设备的沟通有关。
  • 控制耦合(control coupling):指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能;
  • 特征耦合/标记耦合(stamp coupling):也称为数据结构耦合,是指几个模块共享一个复杂的数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址;
  • 数据耦合/数据耦合(data coupling):是指模块借由传入值共享数据,每一个数据都是最基本的数据,而且只分享这些数据(例如传递一个整数给计算平方根的函数)。
  • 消息耦合(message coupling,是无耦合之外,耦合度最低的耦合):可以借由以下二个方式达成:状态的去中心化(例如在对象中),组件间利用传入值或消息传递 (计算机科学)来通信。
  • 无耦合:模块完全不和其他模块交换信息。

降低耦合度的方法

1、少使用类的继承,多用接口隐藏实现的细节。 java面向对象编程引入接口除了支持多态外, 隐藏实现细节也是其中一个目的。
  2、模块的功能化分尽可能的单一,道理也很简单,功能单一的模块供其它模块调用的机会就少。(其实这是高内聚的一种说法,高内聚低耦合一般同时出现,为了限制篇幅,我们将在以后的版期中讨论)。
  3、遵循一个定义只在一个地方出现。
  4、少使用全局变量。
  5、类属性和方法的声明少用public,多用private关键字,
  6、多用设计模式,比如采用MVC的设计模式就可以降低界面与业务逻辑的耦合度。
  7、尽量不用“硬编码”的方式写程序,同时也尽量避免直接用SQL语句操作数据库。
  8、最后当然就是避免直接操作或调用其它模块或类(内容耦合);如果模块间必须存在耦合,原则上尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。

紧密耦合的系统在开发阶段有以下的缺点:

  1. 一个模块的修改会产生涟漪效应,其他模块也需随之修改。
  2. 由于模块之间的相依性,模块的组合会需要更多的精力及时间。
  3. 由于一个模块有许多的相依模块,模块的可复用性低。 [2]

spring核心容器

本章是core&bean的原理讲解

5min复习视频:核心容器总结

在这里插入图片描述

Spring就提出了一个解决方案:

  • 使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象
  • 即:使用消息耦合(耦合度最低的耦合),去中心化,
  1. IOC(Inversion of Control)控制反转

(1)什么是控制反转呢?

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

2.DI的注入方法

  • setter注入(比构造器注入更常用,推荐,我们一般只用构造器注入)(又分为

    • 引用类型注入)

    • 简单类型(int…String)注入)

    • 集合类型注入

      <property name="names">
          <list>
              <value>xxx</value>
              <ref bean="dataSource"/>
          <list>
      </property>
      
  • 构造器注入

IoC基础上,需要绑定两个Bean之间的依赖关系,需要DI进行绑定,的形式

3.bean的生命周期scope: <bean id=“bookDao” class=“com.itheima.dao.impl.BookDaoImpl” init-method=“init” destroy-method=“destory”/ …>当然,还有很多别的scope生命周期属性

在这里插入图片描述


spring注解开发(正片开始)

spring3.0升级了

纯注释开发,使用一个添加了 @configuration的config配置类来进行配置

spring注解开发总结

  • 普通配置类注入:在这里插入图片描述

  • 第三方配置类注入

在这里插入图片描述

在这里插入图片描述


spring整合mybatis

看看就行

可以看到,在老师给的项目中,shiro( shiro是apache的是一个分布式权限管理的框架,实现 用户认证、用户授权)

和 cors(用于允许跨域请求)

出于安全原因,浏览器禁止AJAX调用当前来源之外的资源,跨域资源共享(CORS)是由大多数浏览器实施的W3C规范,使您可以灵活地指定对哪种跨域请求进行授权。
从Spring Framework 4.2开始,开箱即用地支持CORS。 CORS请求(包括带有OPTIONS方法的预检请求)将自动分派到各种已注册的HandlerMappings。

二者采取了类似的配置类形式

spring整合Junit

看看就行

在这里插入图片描述


AOP:用于不改变原代码基础上 进行功能增强

  • 概念:AOP(Aspect Oriented Programming)面向切面编程,一种编程范式
  • 作用:在不惊动原始设计的基础上为方法进行功能增强
  • 核心概念
    • 代理(Proxy):SpringAOP的核心本质是采用代理模式实现的
    • 连接点(JoinPoint):在SpringAOP中,理解为任意方法的执行
    • 切入点(Pointcut):匹配连接点的式子,也是具有共性功能的方法描述
    • 通知(Advice):若干个方法的共性功能,在切入点处执行,最终体现为一个方法
    • 切面(Aspect):描述通知与切入点的对应关系
    • 目标对象(Target):被代理的原始对象成为目标对象

切入点表达式:

  • 切入点表达式标准格式:动作关键字(访问修饰符 返回值 包名.类/接口名.方法名(参数)异常名)

    execution(* com.itheima.service.*Service.*(..))
    
  • 切入点表达式描述通配符:

    • 作用:用于快速描述,范围描述
    • *:匹配任意符号(常用)
    • .. &
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
springmvc是一种基于Spring框架的MVC(Model View Controller)开发模式的Web开发框架。它能够帮助开发者更好地管理请求和响应,让开发过程更加简洁和灵活。MyBatis是一个优秀的持久层框架,可以与Spring相结合进行数据库操作。它能够通过注解或XML配置文件实现数据库的增删改查操作,使开发者能够高效地操作数据库。电商项目是一种在线购物平台,用户可以浏览商品信息、下单购买、查看订单等。Java商城源码是这种电商项目的实现代码,通过使用SpringMVC和MyBatis,能够快速搭建一个完整的电商网站。 SSM框架是指Spring+SpringMVC+MyBatis的组合,是一种常用的JavaWeb开发框架。Spring是一个轻量级的开源框架,提供了很多实用的功能,包括IOC(控制反转)和AOP(面向切面编程)等。SpringMVC是基于Spring的MVC框架,可以实现请求的分发和处理。MyBatis是一个持久层框架,可以与SpringMVC结合使用,完成数据库的操作。Maven是一种软件项目管理工具,可以自动下载和配置项目所需的第三方库和工具。 对于这个电商项目的Java商城源码,使用SSM框架和Maven进行开发是一个不错的选择。首先,可以使用Maven来管理项目所需的依赖库,避免手动下载和配置的繁琐过程。其次,使用Spring来提供IOC容器和AOP功能,可以简化开发过程,并且使代码更加易于维护。然后,使用SpringMVC来处理请求和响应,实现网站的跳转和业务逻辑的处理。最后,使用MyBatis来完成与数据库的交互,实现商品信息的增删改查等功能。 综上所述,使用SSM框架和Maven进行开发的电商项目Java商城源码,能够快速搭建一个完整的电商网站,实现商品的展示、购买和订单的管理等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值