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的利用部署,先导入如下插件:
    ···
    <build>

    <plugins>    <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>            spring-boot-maven-plugin        </artifactId>    </plugin></plugins>

    </build>
    ···

  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语法进行编写

对文章中内容感兴趣的小伙伴能够搜寻微信公众号:敲代码的老贾,支付相应材料