个人博客网:https://wushaopei.github.io/    (你想要这里多有)

前言: 分布式架构及微服务理念

1.SOA理念(思想)

SOA :即 Service Oriented Architecture,面向服务架构

主张:

把项目中的各个模块从单一架构中拆分出来,封装成一个一个可以远程调用的服务,从而实现分布式架构。

开发具体的每一个服务时,使用一个interface定义这个服务的功能,这就是我们常说的暴露接口。

当我们实现了interface,将接口暴露到了网络上,可以进行远程调用了,就可以说这个服务开发完成了,这就是我们常说的“写接口”。

SOA精髓:通过提供服务和对服务的调用实现分布式架构。

项目 -----> 模块 -------> 代码

2. micro service 微服务理念

微服务主张服务的“微小化”,将各个模块服务中重复的功能抽取出来封装为微服务,用微服务组装称为各个功能模块。功能模块再组成项目。

项目 ----->  模块 -----> 微服务 -----> 代码

3.关于 SpringCloud  和 SpringBoot  的关系

这是对微服务理念的一整套具体实现。

SpringBoot在微观上开发具体的一个一个微服务。

SpringCloud在宏观上统一管理、协调各个微服务。为微服务提供各个服务的注册中心、网关、配置中心、负载均衡、熔断机制、服务降级、服务监控、服务细节屏蔽等等。

4.SpringCloud 和 Dubbo 对比

  • 最重要的区别:

Dubbo:底层RPC 调用

SpringCloud : 底层REST调用(HTTP)

SpringCloud 能够为项目架构直接提供一整套解决方案。

Dubbo只能作为项目架构的核心和基石,完整的项目架构解决方案还需要借助其他技术。

5.SpringBoot工程的使用

  • 加入需要的场景 starter依赖
  • 配置properties或yml
  • 创建主启动类
  • 通过注解开启相关功能
  • 运行主启动类

6.HelloWorld

6.1 操作步骤

①创建Maven工程

② 加入依赖

<!-- 继承SpringBoot官方指定的父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent> <dependencies>
<!-- 加入Web开发所需要的场景启动器 -->
<dependency>
<!-- 指定groupId和artifactId即可,版本已在父工程中定义 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

③创建主启动类

④创建HelloHandler

@Controller
public class HelloHandler { @ResponseBody
@RequestMapping("/hello")
public String hello() {
return "Hello SpringBoot!";
} }

⑤ 启动

运行主启动类中的main方法启动SpringBoot程序。

⑥通过网页访问handler方法

扩展: 关于包扫描的问题

SpringBoot中主启动类会自动扫描该类所在包的子包,相当于xml配置文件中的<mvc:context scan=”包扫描路径”/>

  • 隐式默认声明自动导包

注意: 要进行扫描的包必须处于主启动类的子包中。

  • 手动扫描包

    使用注解进行包

访问结果:

6.2 通过 Spring 插件创建 SpringBoot工程

限制: 每次创建工程都必须联网:必须借助Spring 插件

效果 :自动生成主启动器和application.properties,以及测试类

SpringBoot 及其 基本原理(一)的更多相关文章

  1. SpringBoot 及其 基本原理、配置文件(二)

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.SpringBoot 的版本与启动过程 1.SpringBoot都是jar工程 ​ 2.Spring ...

  2. springboot学习(一)——helloworld

    以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给 ...

  3. SpringBoot进阶教程(三十)整合Redis之Sentinel哨兵模式

    Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(以及其很多客户端)都没有实现自动进行主备切换,而 ...

  4. SpringBoot + Spring Security 学习笔记(四)记住我功能实现

    记住我功能的基本原理 当用户登录发起认证请求时,会通过UsernamePasswordAuthenticationFilter进行用户认证,认证成功之后,SpringSecurity 调用前期配置好的 ...

  5. 带着萌新看springboot源码09(springboot+JdbcTemplate)

    emmm.....常规开局,继续说一下废话,前面简单的说了一下spring的ioc容器创建原理(花了不少时间去看了别人的博客+查了不少资料+自己的理解),相信大家对ioc容器有了一个初步的认识了. s ...

  6. 基于SpringBoot搭建应用开发框架(二) —— 登录认证

    零.前言 本文基于<基于SpringBoot搭建应用开发框架(一)——基础架构>,通过该文,熟悉了SpringBoot的用法,完成了应用框架底层的搭建. 在开始本文之前,底层这块已经有了很 ...

  7. SpringBoot日记——分布式篇

    思考:什么是分布式?什么是微服务? 一些概念:RPC-远程过程调用,某台机器想要调用另一台机器所需要的一种服务,及分布式的服务框架,比如dubbo或者SpringCloud. 铺天盖地的分布式互联网系 ...

  8. Spring全家桶系列–SpringBoot与Mybatis结合

    //本文作者:cuifuan Mybatis 是一个持久层ORM框架,负责Java与数据库数据交互,也可以简易理解为中介,相对于它,还有个中介是hibernate,不过在mybatis中sql语句的灵 ...

  9. RabbitMQ学习笔记(一):安装及Springboot集成

    前言 MQ,即消息队列Message Queue的缩写. RabbitMQ 是MQ的一种,就像招商银行是银行的一种一样.主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息 ...

随机推荐

  1. 玩转FPGA边缘视觉——4k视频图像抓取

    随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中. ...

  2. STM32 时钟树配置快速入门

    layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 为什么要了解时钟树? ...

  3. 使用 Visual Studio Code 搭建 C/C++ 开发和调试环境

    文章目录 1. 安装 C/C++ 插件 2. 安装 MinGW-w64 并配置好环境变量 3. 测试环境变量是否配置正确 4. 创建和设置 C 语言开发工作区 5. 编写你的第一个 C 语言程序 6. ...

  4. .net core grpc单元测试 - 服务器端

    前言 gRPC凭借其严谨的接口定义.高效的传输效率.多样的调用方式等优点,在微服务开发方面占据了一席之地.dotnet core正式支持gRPC也有一段时间了,官方文档也对如何使用gRPC进行了比较详 ...

  5. [hdu4622 Reincarnation]后缀数组

    题意:给一个长度为2000的字符串,10000次询问区间[L,R]内的不同子串的个数 思路:对原串的每个前缀求一边后缀数组,询问[L,R]就变成了询问[L,n]了,即求一个后缀里面出现了多少个不同子串 ...

  6. React:Conditional Rendering(条件渲染)

    就像JS中常常会根据条件(比如if/else.switch)返回不同的值,React中也可以根据组件的状态或其他参考条件返回不同的React Element. 比如根据用户是否登陆渲染对应的UI面板. ...

  7. 使用QQ同步助手备份同步手机数据

    QQ同步助手官网:https://pim.qq.com/ QQ同步助手,由腾讯精心打造的云端备份工具.能实现手机之间传输文件,并备份文件.照片.视频.联系人.短信.通讯记录.应用程序到云端的换手机必备 ...

  8. Docker镜像下载及加速器设置

    docker远程仓库配置: vim ~/.docker/daemon.json { "registry-mirrors" : [ "https://registry.do ...

  9. Django数据库表初始化缓存清除

    新建的django项目中没有应用app01??? models中也没有UserInfo表???? 但在migrate是却一直报错!!!!! 产生此种现象的原因: 之前的项目中肯定是用到过应用app01 ...

  10. poj2594最小路径覆盖+floyd

    Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 8909   Accepted: 3 ...