• SpringBoot 及其 基本原理(一)


    个人博客网: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,以及测试类

  • 相关阅读:
    JavaScript获取后台C#变量以及后台方法
    无刷新二级联动dropdownlist
    如何使用验证控件对DropDownList进行验证
    对某项目中Vuex用法的分析
    JavaScript中的深拷贝和浅拷贝
    Vue开发中的中央事件总线
    Vue项目中使用Vuex + axios发送请求
    html文件引用本地js文件出现跨域问题的解决方案
    数组的一些与遍历相关的方法总结
    《EMCAScript6入门》读书笔记——16.Generator函数的语法
  • 原文地址:https://www.cnblogs.com/wushaopei/p/11979336.html
Copyright © 2020-2023  润新知