Spring Boot
面试两点:
-
SpringBoot启动会加载大量的自动配置类
-
看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中;
-
再来看这个自动配置类中到底配置了哪些组件;(只要需要要用的组件存在在其中,就不需要再手动配置了)
-
给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。只需要在配置文件中指定这些属性的值即可;
-
xxxxAutoConfigurartion:自动配置类;给容器中添加组件
-
xxxxProperties:封装配置文件中相关属性;
- run()方法
springboot所有的自动配置都是在启动的时候扫描并加载
目的:为了解决企业级应用开发的复杂性而创建的,简化开发。
方法:
4. 通过IOC,依赖注入(DI)和面向接口实现松耦合
5. 基于切面(AOP)和惯例进行声明式编程
- 约定大于配置
- 最核心的部分:自动装配
- 集成web开发:业务的核心
- 集成数据库 Druid
- 分布式开发:Dubbo(RPC) + zookeeper
- swagger:接口文档
- 任务调度
Spring Cloud
- Spring Cloud入门
- 微服务
- Restful
- Eureka
创建方法
- 直接在官网下载后,导入idea开发
- 直接使用idea创建一个springboot项目(推荐)
pom.xml
- spring-boot-denpendencies:核心依赖在父工程中
- 我们在写或者引入一些Springboot依赖的时候,不需要指定版本,因为存在这些版本仓库
SpringApplication类
- 推断应用的类型是普通的项目还是web项目
- 查找并加载所有可初始化器,设置到initializers属性中
- 找出所有的应用程序监听器,设置到listeners属性中
- 推断并设置所有main方法的定义类,找到运行的主类
代码块
- 静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次;
- 非静态代码块,在创建对象的时候(即new一个对象的时候)执行,每次创建对象都会执行一次
相同点: - 都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值。.
- static块中只能使用static修饰的属性。
- 程序中的static{}块只是为了加载properties文件信息,这个加载只会被加载一次。
不同点:
- 静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。
- 静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行