Springboot学习笔记

引入

Springboot以约定大于配置的核心思想,集成大量第三方库配置,第三方库可以零配置开箱即用。
Spring Boot出生名门
程序=数据结构+算法

什么是微服务

微服务是一种架构(MVC、MVVM)风格。

单体应用架构

无论是什么系统,都把数据库访问,web访问等等功能放到一个war包内

微服务架构

高内聚低耦合

如何构建微服务

image.png
image.png
springboot可以帮我们快速构建一个应用,
大型分布式网络服务使用springcloud
** !!!面试的重点!**
软实力:聊天,举止,谈吐
你主导面试官:聊天,30分钟

第一个SpringBoot程序

到底多简单

  • jdk1.8
  • maven3.6.1
  • springboot最新版
  • IDEA

官网提供了一个快速生成的网站~ idea集成了这个网站

项目具体依赖,使用tomcat作为默认嵌入容器

打jar包插件
点击package
得到jar包在idea目录下

原理初探

自动配置:

pom.xml

  • spring-boot-dependencies:核心依赖在父工程中!
  • 我们在写或者引入一些Springboot依赖的时候,不需要制定版本,就因为有这些版本仓库

启动器

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
  • 启动器:说白了就是Springboot的启动场景:
  • 比如spring-boot-starter-web,他就会帮我们自动带入web环境所有的依赖
  • springboot会将所有的功能场景变成一个一个的启动器。
  • 我们要使用什么功能,就只需要找到对应的启动器就可以了,starter

主程序

// 标注这个类是一个springboot的应用
@SpringBootApplication

public class FirstSpringBootApplication {

    public static void main(String[] args) {
        // 将springboot应用启动
        SpringApplication.run(FirstSpringBootApplication.class, args);
    }

}

  • 注解
@SpringBootConfiguration :springboot的配置
    @Configuration :spring配置类
    @Component: 说明这也是一个spring的组件
    
@EnableAutoConfiguration:自动配置
    @AutoConfigurationPackage:自动配置包
        @Import(AutoConfigurationPackage.Regisrar.class):自动配置包注册
    @Import(AutoConfigurationImportSelector.class):自动配置导入选择
    
//获取所有的配置
getCandidateConfigurations(AnnotationMetadata)

自动配置的核心文件

结论:Springboot所有的自动配置都是在启动的时候扫描并加载:spring.factories所有得自动配置类都在这里面,但不一定生效,要判断条件是否成立,只要导入对应的start,就有对应的启动器,有了启动器,我们自动装配就会生效,然后配置成功!

  1. springboot在启动的时候,从类路径下/META-INF/spring.factories获取指定的值;
  2. 将这些自动配置的类导入容器,自动配置就会生效,帮我们进行自动配置
  3. 以前我们需要自动配置的东西,现在springboot帮我们做了
  4. 整个javaEE,解决方案和自动配置的东西都在springbootautoconfiguration...jar包下
  5. 它会把所有需要导入的组件,以类名的方式返回,这些组件就会添加到容器中,
  6. 容器中也会存在非常多的xxxAutoConfiguration的文件(@Bean),就是这些类给容器中导入了这个场景需要的所有组件。并自动配置,@Configuration
  7. 有了自动配置类,免去了我们手动编写配置文件的工作
posted @ 2022-06-23 23:25    阅读(29)  评论(0编辑  收藏  举报