【Spring Boot】快速上手SpringBoot


一、微服务架构

  1. 微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

  2. all in one的架构方式,我们把所有的功能单元放在一个应用里面。然后我们把整个应用部署到服务器上。如果负载能力不行,我们将整个应用进行水平复制,进行扩展,然后在负载均衡。

  3. 所谓微服务架构,就是打破之前all in one的架构方式,把每个功能元素独立出来。把独立出来的功能元素的动态组合,需要的功能元素才去拿来组合需要多一些时可以整合多个功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制。

  4. 高内聚,低耦合。

二、SpringBoot

Spring Boot是微服务架构的基础。相比之前的Spring,它主要是省去了大量的样板式配置,取而代之的是根据条件的自动化配置,也提升了开发体验和增加一些新的特性,使开发人员把更多的精力放到业务代码上。

Spring Boot 核心功能:

  1. 独立运行的 Spring 项目
    Spring Boot 可以以 jar 包的形式独立运行,运行一个 Spring Boot 项目只需通过 java–jar xx.jar 来运行。
  2. 内嵌 Servlet 容器
    Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,这样我们无须以 war 包形式部署项目。
  3. 提供 starter 简化 Maven 配置
    Spring 提供了一系列的 starter pom 来简化 Maven 的依赖加载,例如,当你使用了spring-boot-starter-web 时,会自动加入如图 1 所示的依赖包。
  4. 自动配置 Spring
    Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置 Bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。
  5. 准生产的应用监控
    Spring Boot 提供基于 http、ssh、telnet 对运行时的项目进行监控。
  6. 无代码生成和 xml 配置
    Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和注解配置组合,而 Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。

三、Idea创建一个SpringBoot项目

步骤:

  1. 创建一个新项目:File==》New==》Project…
    在这里插入图片描述
  2. 选中Spring Initializr===》Next

在这里插入图片描述

  1. 根据自己Java的版本,Maven仓库的Group和Artifact,以及创建好后的包名等填写好==》Next
    在这里插入图片描述

  2. 我们需要添加Dependencies的话,勾选相应的,例如我们需要一个Web项目,选择Web==》勾选sprig Web==》next

在这里插入图片描述

  1. 点击Finish完成创建

在这里插入图片描述

  1. 创建好的项目结构图

在这里插入图片描述

  1. 测试:我们自需要把相应的包建在src/main/java/com.gaolang下就好,然后编写测试代码,什么都不需要配置。

测试类:TestController.java

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @RequestMapping("/test")
    public String test(){
        return "This is a test project.";
    }
}

测试结果:
在这里插入图片描述
在这里插入图片描述

四、SpringBoot自动装配原理

  1. pom.xml
  • spring-boot-dependencies核心依赖在父工程中
  • 在引入springboot依赖时,不需要写版本,因为父工程中有版本仓库。
  1. 启动器 spring-boot-starter-xxx
  • 例如,spring-boot-starter-web,就会帮我们导入web环境所有的依赖。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 主程序SpringbootApplication .java
@SpringBootApplication
public class SpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }

}

表面理解:

  • 注解@SpringBootApplication:标注这个类是一个springboot的应用
  • SpringApplication.run(SpringbootApplication.class, args);//将springboot应用启动

深层次:

  • 注解@SpringBootApplication是一个复合 Annotation

  • 核心的两个注解:@SpringBootConfiguration和@EnableAutoConfiguration

  • @SpringBootConfiguration:springboot的配置
    该注解下还包含:@Configuration:表示一个普通的 JavaConfig 形式的 IoC 容器配置类

  • @EnableAutoConfiguration :是借助 @Import 的帮助,将所有符合自动配置条件的 bean 定义加载到 IoC 容器

  • @ComponentScan 的功能其实就是自动扫描并加载符合条件的组件或 bean 定义,最终将这些 bean 定义加载到容器中。

SpringbootApplication类的作用:

  • 1.推断应用的类型是普通的项目还是Web项目
  • 2.查找并加载所有可用初始化器,设置到initializers属性中
  • 3.找出所有的应用程序监听器,设置到listeners属性中
  • 4.推断并设置main方法的定义类,找到运行的主类
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值