什么是SpringBoot

SpirngBopt快速入门(容器)

什么是约定大于配置

在springboot中,只要导入了web-stater,spring mvc、json、spring核心容器等web场景需要的所有依赖都会导入,并控制好版本
spring boot的理念就是约定大于配置,在spring boot中提供了一套默认配置,不需要手动去写xml配置文件,只有默认配置不能满足我们的需求时,才会去修改配置。

Spirng是一个框架开源 2003年兴起的一个轻量级的java开发框架 作者Rod Johnson
Spring是为了解决企业级应用开发的复杂性而创建的,简化开发

Spring是如何简化java开发的

为了降低java开发复杂性,Spring采用了一下四种关键策略:
1.基于POJO的轻量级和最小侵入性编程;2.通过IOC,依赖注入(DI)和面向接口的实现松耦合; 基于切面(AOP)和惯例声明式编程;4.通过切面和模板减少样式代码

什么是SpirngBoot

就是一个javaweb的开发框架,和SpringMVC类似,对比其他的javaweb框架的好处,官方说简化开发,约定大于配置,对于其他框架的开发好处,就是简化开发,约定大于配置,开发接口简单,maven整合jar包,他整合所有框架,

​ SpringBoot本身不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷的开发新一代基于Spring框架的应用程序,也就是说他并不是用来代替Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者的体验工具。

数据库:Redis、MongDB、Jpa、RabbitMQ、Quratz

微服务架构

image-20201219201949786

1.单体应用架构(all in one )将应用服务封装在一个在一个应用中,
数据库访问,web访问等等各个功能放到一个war包内

一个大型系统的微服务架构,就像一个复杂交织的神经网络,每个神经元素就是一个功能 ,他们各自完成等自己的功能,只需要更新升级其中一个功能服务单元即可

优点:易于开发测试,部署方便,当需要部署时,只需要复制war包放到多个服务器上,负载就可以

缺点:修改摸个地方的时候需要停掉整个服务,重新打包、部署应用war包维护难

2.微服务架构:把功能单元放在一个应用里面,然后部署到服务器上,

优点:把每个功能独立出来,独立出来动态组合,整合多个功能元素,对功能赋值,没有对整个应用复制 高内聚低耦合

MVC MVVM 微服务架构 ==> 模块

controller ==>提供接口

原理初探

自动配置:

  • 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会将所有的场景,都变成一个个启动器 用什么功能就加入什么启动器

主程序:

image-20210123131021529

注解 :

@SpringBootConfiguration自动配置  
	@Configuration: spring 配置
	@Component: 说明这也是一个spring组件

@EnableAutoConfiguration 自动导入配置 重要
	@AutoConfigurationPackage :自动配置包
		@Import(AutoConfigurationPackage.Registrar.class): 自动配置`包注册`
	@Import(AutoConfigurationImportSelector.class):自动配置导入选择


//获取所有的配置
List<String> configurations = getCandidateConfigurations(annotationMetdata,attributes);

获取候选的配置

Protected List<String> getCandateConfigurations(AnnotationMetadata metadata,AnnotationAttributes attributes){
   
	List<String> configurations = SpringFactoriesLoader.loadFatoryNames(getSpringFatoriesLoaderFatoryClass(),getBeanCalssLoader());
	Assert.notEmpty(configurations,"No auto configuration classes found in META-INF/spring.factoryies.If you " + "are using a custom packaging, make sure that file is correct.");
	return comfigurations;
} 

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

image-20210123133647180

ProPorperties 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值