Springboot学习笔记
引入
Springboot以约定大于配置的核心思想,集成大量第三方库配置,第三方库可以零配置开箱即用。
Spring Boot出生名门
程序=数据结构+算法
什么是微服务
微服务是一种架构(MVC、MVVM)风格。
单体应用架构
无论是什么系统,都把数据库访问,web访问等等功能放到一个war包内
微服务架构
高内聚低耦合
如何构建微服务
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,就有对应的启动器,有了启动器,我们自动装配就会生效,然后配置成功!
- springboot在启动的时候,从类路径下/META-INF/spring.factories获取指定的值;
- 将这些自动配置的类导入容器,自动配置就会生效,帮我们进行自动配置
- 以前我们需要自动配置的东西,现在springboot帮我们做了
- 整个javaEE,解决方案和自动配置的东西都在springbootautoconfiguration...jar包下
- 它会把所有需要导入的组件,以类名的方式返回,这些组件就会添加到容器中,
- 容器中也会存在非常多的xxxAutoConfiguration的文件(@Bean),就是这些类给容器中导入了这个场景需要的所有组件。并自动配置,@Configuration
- 有了自动配置类,免去了我们手动编写配置文件的工作