SpringBoot微服务框架

  • 2. Spring Boot 微服务框架的特点
  • 3. Spring Boot 应用场景
  • 4. SpringBoot的第一个应用
  • 5. Springboot引导类的main方法有什么作用?
  • 6. SpringBoot的场景启动器
  • 7.@SpringBootApplication探究
  • 8.如何配置SpringBoot的配置文件?

1. Spring Boot概述

SpringBoot是一个微服务框架,基于Spring的,换句话就是Spring中有的功能,在SpringBoot中都能实现。

SpringBoot就是简化了Spring的开发。

微服务与单体架构的区别

  • 单体架构所有的模块全都耦合在一块,代码量大, 维护困难 ,微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
  • 单体架构所有的模块都共用一个数据库, 存储方式比较单一 ,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
  • 单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使用不同的开发技术, 开发模式更灵活

2. Spring Boot 微服务框架的特点

  1. SpringBoot就是简化了Spring的开发
  2. 嵌入的Tomcat,无需部署WAR文件,使部署变得简单
  3. 简化Maven配置 ,提供了多种场景启动器,使配置变得简单
  4. 自动配置Spring ,提供了默认配置,使配置变得简单
  5. 提供生产就绪型功能,如指标,健康检查和外部配置 ,使监控变简单

3. Spring Boot 应用场景

  1. Spring能够应用的场景
  2. javaWeb应用
  3. 微服务

4. SpringBoot的第一个应用

需求:在浏览器端发送一个hello请求,服务器响应回浏览器一个字符串Hello World

  1. 在Idea中创建Maven工程
  2. 导入SpringBoot相关依赖
  3. 编写主程序启动SpringBoot应用,编写SpringBoot的引导类
    ···
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    //这个类就是SpringBoot的引导类
    @SpringBootApplication
    public class SpringBootApplicationMain {
    public static void main(String[] args) {
    //固定的写法
    SpringApplication.run(SpringBootApplicationMain.class,args);
    }
    }
    ···
  4. 编写controller,运行main方法
    ···
    @Controller
    public class HelloController {
    @RequestMapping(“/hello”)
    @ResponseBody
    public String hello(){
    return “Hello World”;
    }
    }
    ···

与Spring开发的不同

  • 没有配置 配置文件
  • 没有部署tomcat
  • 没有大量的Maven依赖

5. Springboot引导类的main方法有什么作用?

SpringBoot启动时通过main方法启动,主要做两方面工作:

1.初始化Spring容器

2.启动tomcat运行项目

SpringBoot在生产环境的部署

  1. 导入一个打包jar包的插件,将项目打包成jar包

    可将项目打包成可执行的jar包,简化了SpringBoot的应用部署,先导入如下插件:
    ···

    org.springframework.boot

    spring-boot-maven-plugin

    ···

  2. 直接运行这个jar包

6. SpringBoot的场景启动器

什么是场景启动器?有什么作用?

spring-boot-starter

作用:Spring Boot的核心启动器,包含了自动配置、日志和YAML

查看parent的starter

SpringBoot读取resources下的也就是类路径下的application开头的三种配置文件。

parent的stater继承于dependencies

这里包含了Spring的依赖,还包含了很多框架及工具的依赖,这些依赖都已经定义好了版本,版本是由SpringBoot的版本来决定的,这些依赖的版本一定是兼容的。

查看web的starter

  1. tomcat的启动器

  1. spring-web和spring-mvc的依赖

7.@SpringBootApplication探究

@SpringBootApplication注解的作用:

@SpringBootApplication是SpringBoot的主配置类,由该注解配置的类,Springboot 就会运行main方法启动SpringBoot应用

@SpringBootApplication注解是一个组合注解,由三个主要的注解组成

  1. @SpringBootConfiguration注解

    包含了@Configuration注解 修饰的类是一个配置类

    引导类本身就是一个配置类
    ···
    @SpringBootApplication
    public class SpringBootApplicationMain {
    public static void main(String[] args) {
    //初始化Spring的IOC容器
    ApplicationContext context =SpringApplication.run(SpringBootApplicationMain.class,args);
    Person person = (Person)context.getBean(Person.class);
    System.out.println(person);
    }
    @Bean
    public Person getPerson(){
    return new Person();
    }
    ···
    或者单独卸载一个类中
    ···
    //定义成配置类
    //Spring容器在初始化时,自动执行配置类中所有@Bean修饰的方法
    //将这些方法返回的对象,注册在IOC容器中
    @Configuration
    public class MyConfig {
    @Bean(“person”)
    public Person getPerson(){
    return new Person();
    }
    }
    ···

  2. @ComponentScan注解 :扫描当前类(引导类)所在的包及子包下的含有@Component注解的类,注册为Bean,相当于以前在Spring配置文件中配置的ComponentScanner这个bean
    在第一个应用中的 HelloController类一定要在引导类的包中或其子包中

  3. @EnableAutoConfiguration注解:开启Springboot的 自动配置功能 ,加载各个场景启动中的自动配置类,将配置类中的bean注册在容器中
    可以 通过properties或yml配置文件来修改 容器中bean的属性 ,以达到修改默认配置的目的

8.如何配置SpringBoot的配置文件?

SpringBoot配置文件的作用:

修改Spring Boot自动配置的默认值

SpringBoot 配置文件分为两种:

  1. application.properties配置

  1. application.yml配置

使用特定的YML语法进行编写

SpringBoot微服务框架概述相关推荐

  1. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...

    本文你将学到什么? 本文将以原理+实战的方式,首先对"微服务"相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 项目完整源码下载 https://github ...

  2. 秒杀springboot——未来轻量级高性能的Java云原生微服务框架来啦

    秒杀springboot--未来轻量级高性能的Java云原生微服务框架来啦 引子 自2003年Rod.Juergen 和 Yann开发并发布Spring项目后,J2EE 迎来了新的开始.在 2013 ...

  3. 第六篇:微服务框架(SpringBoot、SpringCloud)

    目录 一. 微服务框架 1. 微服务架构概念 2. 微服务的利与弊(为什么要用微服务) 二. SpringBoot 1. SpringBoot是什么? 2. SpringBoot核心注解是什么? 3. ...

  4. 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)

    这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过RPC接口通信.这样这些系统之间的耦合度大大降低,你的系统将非常容易扩展 ...

  5. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)......

    手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 原文: 手把手0基础项目实战(一)--教你搭建一套可自动化构 ...

  6. 0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)

    2019独角兽企业重金招聘Python工程师标准>>> 本文你将学到什么? 本文将以原理+实战的方式,首先对"微服务"相关的概念进行知识点扫盲,然后开始手把手教你 ...

  7. 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践

    目录导读 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践 1. 开源代码整体架构设计 2. 微服务逻辑架构设计 3. 微服务熔断降级与限流规划 3.1 微服务熔断 ...

  8. ServiceComb微服务框架

    文章目录 一.ServiceComb 的概述 二.服务中心 CSE 的介绍 三.Restful 方式开发 四.RPC 方式开发 五.ServiceComb 服务治理方案 一.ServiceComb 的 ...

  9. JavaEE 企业级分布式高级架构师(十三)微服务框架 SpringCloud (H 版)(1)

    Spring Cloud学习笔记 Spring Cloud入门 分布式技术图谱 Spring Cloud简介 官网介绍 百度百科 总结 Spring Cloud的国内使用情况 Spring Cloud ...

最新文章

  1. mysql int 默认值 为ull_数据类型--ULL、ll
  2. Asp.net2.0页面的生命周期(续)
  3. Windows下为PHP安装redis扩展
  4. 特征层次分析、视觉特征语义探索(微调+预训练)
  5. Android, WindowsPhone7, IOS ,vc2010平台40多套图片滤镜开源
  6. 屏保延迟启用密码保护
  7. 离线OCR、文字识别、ios证件扫描、ios系统OCR(ios、android)
  8. 测试@Test启动报错解决方案
  9. 《GB∕T 35273-2020 信息安全技术 个人信息安全规范》已正式实施,这些变化需牢记!(附下载)
  10. fail can only be invoked by user TAP gesture.
  11. matplotlib显示伪彩色图像及色度条
  12. 如何在线将多个PDF文档进行合并
  13. 生成token的工具类
  14. 关于c/c++里面结构体指针变量的申请空间问题。
  15. 视频播放ExoPlayer(附小demo)
  16. 第四周 Java语法总结_内部类_常用类_getclass_toStrong_equals_clone_Scanner_String_StringBuffer_Integer_集合_插入排序
  17. 张宇基础30讲 第14讲
  18. 快速入眠--海军两分钟入睡法
  19. 纯css和html光芒特效,纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
  20. Ralink RT5350 GPIO配置(坑了个大爹的)

热门文章

  1. mysql cc攻击_防御CC攻击说明
  2. Spring Boot application starters
  3. 2021年化工自动化控制仪表免费试题及化工自动化控制仪表试题及解析
  4. List中删除指定元素
  5. jmeter+exexl实现接口自动化
  6. ionic2 小米手机拍照选相册 闪退的问题
  7. chrome浏览器隐藏滚动条
  8. 含文档+PPT+源码等]精品基于Uniapp+SSM实现的android在线点单系统APP[包运行成功]Java毕业设计Android项目源码
  9. 带带弟弟ocr,对各种类型验证码说不!
  10. Linux入门命令小结