谈谈对于springboot的理解/springboot特点/优点/为什么要用 Spring Boot?(1)
我认为Springboot是spring的脚手架,是一个快速开发框架,其目的是简化Spring应用程序的初始化搭建和配置。
其优点是
快速构建项目,简化配置,简化maven配置
独立运行,无需外部servlet容器
简化了代码量,提高了开发效率
提供实时监控
快速构建项目,简化配置,简化maven配置
提高部署效率,内置tomcat容器,无需另外部署war文件
springboot starters有什么用/springboot项目如何导入包
通过Springboot starters导入包
可以把starters理解为一个启动器,它包含一系列可以集成到spring应用程序里的依赖和代码,可以一站式集成Spring及其他技术
启动springboot的流程
SpringBoot项目建立之后,生成一个XXXApplication.java的类,称之为主类、入口类,通过主类的主函数,使用静态方法SpringBoot.run()来启动项目,进行实例化操作
1、启动IOC容器
2、加载源配置类(也就是主类)
3、加载和处理所有的配置类(springboot会自动找到所有的配置类进行加载和处理)
4、实例化所有单类bean(依赖注入,自动装配)
5、启动web服务器
springboot自动装配过程(还不理解)
springboot自动配置原理(还不理解)
springboot注解
最核心的注解是@SpringBootApplication,其目的是用来标注主类,入口类
@SpringBootApplication包含三个注解
@SpringBootApplication启动类,标识这是项目的入口,只能用一次,包含以下几个类:
@SpringBootConfiguration: 组合了 @Configuration 注解,实现配置文件的功能
@EnableAutoConfiguration: 打开自动配置功能,也可也关闭@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })(用核心注解类,自动配置spring,以及项目中引入的第三方技术的自动配置)
@ComponentScan:spring组件扫描,相当于<content:component-scan basePackage=“”>
默认扫描的是入口类所在的包及其子包(所以,入口类必须写在所有包之上)
Springboot配置文件(1)
1)springboot配置文件的优先级/配置加载顺序?(1)
boostrap>application>系统环境变量>命令行参数2)Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
application于boostrap
application:主要用于项目自动配置
boostrap:一些固定的不能被覆盖的属性;一些加密/解密场景;使用SpringCloudConfig配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;3)Spring Boot 的配置文件有哪几种格式?它们有什么区别?
.properties和.yml
.properties: 用 点. 来分割
.yml:用缩进表示父子关系,用 冒号: 分割
springboot层级结构(1)
主要包
controller: 控制器,提供接口,将数据与前端交互
pojo: 实体类,字段与数据库字段一一对应
dto: 存在于展示层,封装给前台展现的对象类
dao: 对数据库进行操作,与数据库交互的写在XML文件里面
service:业务层 ,处理业务逻辑,不关心数据库的操作,被controller调用
开启SpringBoot特性有哪几种方式?
继承spring-boot-starter-parent的项目
导入spring-boot-dependencies依赖
springboot环境搭建
S1、导入依赖,pom文件
S2、创建配置文件application.yml
S3、创建主类,标注@SpringBootApplication
运行SpringBoot有哪几种方式?
W1: 直接运行主类main方法
W2:利用maven启动
W3:打包用命令行或者放到容器中运行
SpringBoot 实现热部署有哪几种方式?
springboot loaded
spring-boot-devtools
Spring Boot 如何定义多套不同环境配置?
多套配置文件,在application.properties里面指定激活的active的哪个文件
application-dev.properties
application-test.properties
application-prod.properties