一、springBoot介绍
简化新Spring应用的初始搭建以及开发过程
二、 javaConfig
@Configuration:
spring的配置类标签,表示该类为配置类,等价于applicationContext.xml
@Bean:
// 方式1:调用实例方法进行注入
//@Bean标签贴方式表示实例方法,这个方法 会被spring进行代理,进行bean管理
//在执行bean实例方法之前,先解析方法返回值的类型, 根据类型去spring容器 查询是否存在该类型的实例
//如果有,不执行bean实例方法,直接从容器中获取
//如果没有,执行bean实例方法, 并将方法值交给spring容器管理,并返回
otherBean();
someBean.setOtherBean(otherBean());
return someBean;
//方式2:使用方法形参的方式
//在执行someBean实例方法之前,解析方法的形式参数, 从容器查询需要参数类型, 找到之后直接注入
@ComponentScan :
开启组件扫描器,默认扫描当前类所在的包,及其子包
@Value:
从Spring环境对象中根据key读取value
@Import :
配置文件导入注解,将指定配置类合并当前配置类中
注意:这个注解是配置类与配置类间的引入
@ImportResource:
配置文件导入注解,将指定配置类合并当前配置类中
注意:配置文件与配置类的引入
@PropertySource:
属性资源导入标签,将指定属性文件导入到spring容器
Environment :
spring容器的环境参数类
spring容器通过@PropertySource加装所有配置属性配置进来之后,会这些文件 进行解析
将解析的所有的 kv 参数封装 Environment
主要的注解
三、spingboot使用
1. web项目为啥是jar包
springboot默认打包方式是jar
springboot使用的是内嵌的tomcat,tomcat部署结构跟外部的tomcat是不一样的
2. pom.xml文件里面 spring-boot-starter-parent 代表什么
spring-boot-starter-parent 依赖是springboot 第三方依赖管理项目
将常见的第三方框架对应依赖的jar包,收集到parent项目统一管理
springboot 就是第三方jar集合-加入工具箱
:
依赖管理 , 仅仅管理依赖包,jar包路径(groupId),jar的名称(artifactId)版本没有真正导入到项目中,需要引入依赖必须在中明确引入
如果某个jar包已经加入到管理起来啦,项目引入依 赖时,
只需要在中导入依赖的groupId artifactId 即可,版本号不需要引入
一般用于多模块项目的jar版本管理
3. pom.xml文件的spring-boot-starter-web代表着什么
springboot 将收集好的jar,按照一定功能进行分类,在整合,形成新的jar一依赖工具,这个springboot的模块组件
命名规则:spring-boot-starter-xxx
spring-boot-starter-web:表示springboot整合web相关的依赖形成的web模块组件,里面包着web操作基础的jar依赖
4. 在App类中贴的 @SpringBootApplication 代表什么
@SpringBootApplication:
springboot功能注解, springboot 所有的核心功能全部靠这个注解去实现里面包含3个核心功能,即下面的3个核心注解
@ComponentScan:组件扫描器,扫描指定包及其子包所有贴有版型的标签类,创建对象给spring容器管理
@SpringBootConfiguration:表示springboot 配置类的标签,该标签上个@Configureation标签,表示当前App类是spring容器配置的类
@EnableAutoConfiquration :启动springboot自动扫描配置类的标签, 该标签功能很强,可以批量扫描springboot项目中所有的配置类, 并且 [按照需要]自动加载spring容器里面该标签上面有功能标签: @Import (AutoConfigurationImportSelector.class),导入一个AutoConfigurat ionImportSelector类,此类是一个配置类选择器 ,能批量选择配置类
- 配置类加载路径:
spring-boot-autoconfgure-2.2.6.RELEASE。jar/META-INF/spring.factries
这个文件加载pringboot所有自动导入的配置类
- 这些配置类使用原理:
1: springboot启动之后,通过@EnableAutoConfiguration的AutoConfigurat ionImportSelector类导入功能将所有能自动配置的组件的配置类,全部加载到内存中,此时这些配置类并没有真实import到spring容器,也即没有开始使用。
2: springboot会根据导入的jar依赖来解决将那些配置类合并spring容器中
比如:
导入: spring- boot-starter-web 这个jar依赖,springboot会识别配置springmvc环境, 就会自动import这个配置类: DispatcherServLetAutoConfiguration
DispatcherServletAutoConf iguration这个配置类能配置springmvc所有环境比如:创建并配置DispatcherServlet实例
导入: spring- boot -starter- freemarker这个jar依赖,springboot会 识别需要配置freemarker相关环境,会自动import FreeMarkerAutoConfiguration 这个配置类
FreeMarkerAutoConfiguration这个配 置类配置freemarker需要视图解析器: FreeMarkerViewResolver 跟FreeMarkerConfigurer
总结:
springboot 其实遵循一个原则:按需加载(application.properties),约定大于配置
[springboot 会根据你导入的依赖来自动加载对应的功能,并通过默认的配置进行配置,如果需要自定义,可以通过配置文件进行覆盖-application.properties]
5. main方法中的 SpringApplication.run(App.class,args) 代码代表什么
1: 解析传入的配置类App.class字节码对象,然后获取@SpringBootApplication 这个注解,并解析该注解
2: 解析并实现@SpringBootApplication这个注解代表所有功能
3: 启动spring容器并初始化,项目初始化,将项目打jar部署到内嵌tomcat、
4: 启动tomcat,默认端口8080
6. web中tomcot怎么启动,端口是多少
springboot内嵌的tomcat,默认端口8080
四、需要掌握的知识点
1:标准的springboot项目 格式[必须掌握]
2: springboot操作流程[ 必须掌握 ]
3: springboot的执行原理(自动加载)分析[了解-至少做到能说得出来]
4: springboot 打包操作【了解】
5.springboot常用组件【了解】
6.springboot的banner【了解】
7.springboot的热部署【了解】
8.springboot的配置文件格式:properties yml【必须掌握】
9.springboot配置参数获取(单个 多个)【必须掌握】
@ConfigurationPeroperties
使用@ConfigurationProperties绑定参数对象,根据参数对象的字段作为key来获取application.properties文件中对应的value