zoukankan      html  css  js  c++  java
  • 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,以及测试类

  • 相关阅读:
    HDOJ/HDU 2352 Verdis Quo(罗马数字与10进制数的转换)
    HDOJ/HDU 2203 亲和串(简单的判断~Java的indexOf()方法秒)
    HDOJ/HDU 2163 Palindromes(判断回文串~)
    js之函数
    js琐碎知识点
    position
    css属性background
    图片展示失效容错处理
    文字打点
    浮动的一些知识点
  • 原文地址:https://www.cnblogs.com/wushaopei/p/11979336.html
Copyright © 2011-2022 走看看