springboot 面试题
aop面向切面编程
aop可以说是对oop的补充和完善,oop引入封装,继承,多肽等概念来建立对象层次结构
ioc 控制反转
比如 a类调用b类的方法 以前通过oop的思想是通过new b对象 然后在调用b的方法,这种模式就会导致对象之间的耦合度过高,为了解决这样的问题,我们把这个new的事情交给spring来做在我们调用的时候,容器会帮我们实例化( ioc对spring框架来说 由spring来负责控制对象的生命周期和对象的关系 )
spring boot自动配置的原理是啥
springboot程序主启动类 @SpringBootApplication=>@EnableAutoConfiguration=>AutoConfigurationImportSelector.class类=>selectImports()方法=>getConfigurations()方法获取并且返回
@SpringBootApplication
@EnableAutoConfiguration
AutoConfigurationImportSelector.class类
selectImports()方法获取configurations并且返回
谈谈你对springboot的理解 (优点)
1: springboot主要用来简化使用spring的难度和繁重的xml配置( 通过.properties或者.yml文件替代spring繁杂的xml配置文件 )
2: 他也能像spring项目样独立运行,简化配置,自动配置,无需部署war文件等
3: 提供嵌入式http服务器,如tomcat和jetty 能轻松开发web项目及测试web项目
4: 可以兼容老的spring项目通过@ImportResource注解就能导入老的spring项目的配置文件
springboot的核心配置文件有哪几个,区别时啥 (application跟bootstrap配置文件)
application配置文件主要用于springboot项目的自动化配置
bootstrap配置文件有3个应用场景:
1: 固定的不能被覆盖的属性
2: 加密解密的场景
3: 使用springcloud config配置中心时,需要在bootstrap配置文件中添加连接到配置中心的配置属性,来加载外部配置中心的配置信息
springboot的配置文件有哪几种格式 区别是啥
1: .properties跟 .yml
区别: 书写格式不同,yml不支持@PropertySource 注解导入配置
开启springboot特性有哪几种方式?
1: 继承spring-boot-starter-parent项目
2: 导入spring-boot-dependencies项目依赖
springboot读取配置文件的几种方式
1:使用@value注解加载单个属性值
2:使用@ConfigurationProperties注解加载一组属性值,针对加载的属性过多的情况,比@value注解更加简洁
springboot的核心注解是那个(@springbootapplication)
启动类使用的注解 他是一个复合注解 主要包含3个注解
1: @SpringBootConfiguration:组合了@Configuration 注解,实现配置文件的功能
2: @EnableAutoConfiguration:打开自动配置的功能,关闭某个自动配置的选项
3: @ComponentScan:用于Spring组件扫描
springboot配置加载顺序
.propertiese文件>.yaml文件
yaml文件的优势
1:简介方便
2:支持数组,
3:配置有序
什么是javaConfig
JavaConfig 可以看成一个用于完成 Bean 装配的 Spring 配置文件,即 Spring 容器,只不过该容器不是 XML文件,而是由我们自己使用 Java 编写的 Java 类,在自己编写的类上使用@Configuration 注解使当前类作为容器来使用