【Java进阶营】Java架构师入门到精通 春招拿到多个大厂offer Springboot入门-01

微服务阶段

javaSE : OOP

Mysql: 持久化

html+css+js+jquery+框架: 视图、框架不熟练、css不熟练。

javaWeb: 独立开发MVC三层架构网站: 最原始

ssm: 框架,简化了开发流程,配置也变得较为复杂。

war: tomcat运行

spring再简化:SpringBoot- jar: 内嵌Tomcat; 微服务架构开始!

服务越来越多: SpringCloud 管理服务。

image.png

什么是微服务?

MVC三层架构 MVVM 微服务结构

业务: service : UserService: ===> 每个服务都独立成一个模块

springmvc, controller ===> 提供接口调用

Http模式、RPC模式

第一个SptingBoot程序

环境:

  • jdk1.8

  • maven 3.5.3

  • IDEA

自动配置原理

自动配置:

pom.xml

  • spring-boot-dependencies: 核心依赖在 父工程中

  • 在引入一些依赖时,不需要在指定版本。因为父工程已定义

启动器

  •     org.springframework.boot
        spring-boot-starter
    
  • 启动器:就是Springboot的启动场景(依赖)

  • spring-boot-starter-web 就会自动导入web环境所需的所有依赖

  • 要使用什么功能,只需要导入对应的 starter启动器就可以。

主程序

//@SpringBootApplication : 标注这个类是一个 springboot的应用
@SpringBootApplication public class SpringbootApplication { public static void main(String[] args) { // 将springboot应用启动。主入口
        SpringApplication.run(SpringbootApplication.class, args);
    }
}

注解

@SpringBootConfiguration : springboot的配置
        @Configuration : spring配置类
        @Component: 该类本身就是个组件

@EnableAutoConfiguration: 自动配置
        @AutoConfigurationPackage: 自动配置包
            @Import(AutoConfigurationPackages.Registrar.class): 自动配置包`注册`

        @Import(AutoConfigurationImportSelector.class): 自动配置导入选择 // 获取所有的配置
List configurations = getCandidateConfigurations(annotationMetadata, attributes); 

获取候选的配置

protected List getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {
        List configurations = SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(),
                getBeanClassLoader());
        Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you "
                + "are using a custom packaging, make sure that file is correct."); return configurations;
    }

META-INF/spring.factories: 自动配置的核心文件

路径在: spring-boot-autoconfigure-2.2.0.RELEASE.jar/META-INF/spring.factories 文件中

Properties properties = PropertiesLoaderUtils.loadProperties(resource);
所以资源加载到配置类中

结论: spring boot所有自动配置都是在启动的时候扫描并加载,spring.factories所有的的自动配置类都在这里,但不一定生效。要判断条件是否成立,只有导入了相应的启动器,自动配置才会生效。在此我向大家推荐一个架构学习交流圈。交流学习伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

  1. Springboot在启动的时候从类路径下 META-INF/spring.factiries中获取 EnableAutoConfiguration指定的值。

  2. 将这些值指定的自动配置类导入到容器,自动配置类就会生效,前提必须要有对应的starter场景启动器。

帮助我们完成自动配置工作。

  1. 整个javaEE体系的解决方案和自动配置都在 springboot-autoconfiguration的jar包中。

  2. 它将所有需要导入的组件以全类名的方式返回。这些组件会被添加到容器中。

  3. 它会给容器中导入非常多的自动配置类。格式为(xxxxAutoConfiguration),就是给容器中这个场景需要的组件,并自动配置好这些组件。

  4. 有了自动配置类,免去了手动去配置编写注入功能组件的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值