01 Spring Boot 入门
时间:2022-07-22
本文章向大家介绍01 Spring Boot 入门,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Spring Boot 入门
原理初探
主程序
@SpringBootApplication
public class SpringBoot01Application {
public static void main(String[] args) {
SpringApplication.run(SpringBoot01Application.class, args);
}
}
注解
- @SpringBootConfiguration //springboot的配置 @Configuration //spring配置类 @Component //说明这也是spring组件 @EnableAutoConfiguration //自动配置 @AutoConfigurationPackage //自动配置包 @Import(AutoConfigurationPackages.Registrar.class) //自动配置包注册 @Import(AutoConfigurationImportSelector.class) //获取所有的配置 List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes);
获取候选配置
- protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) { List<String> configurations = SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()); Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you " + "are using a custom packaging, make sure that file is correct."); return configurations; }
- META-INF/spring.factories:自动配置核心文件
Properties properties = PropertiesLoaderUtils.loadProperties(resource);
//所有资源加载到配置类中
结论:SpringBoot所有自动配置在启动时扫描并加载(通过@SpringBootApplication
注解实现):spring.factories存放自动加载的所有类,生效条件为:对应的启动项(start
)被导入。未导入的启动项(start
)不会加载。
- springboot在启动时,从类路径
META-INF/spring.factories
中获取指定值 - 自动配置的类导入后,便可生效,自动配置
- 以前需要手动装配的类,springboot自动装配了
- 整合j2EE,解决方案以及自动配置在
spring-boot-autoconfigure-2.3.0.RELEASE.jar
包下 - 它会吧所有需要导入的组件,以类名方式返回,这些组件就会被添加到容器;
- 容器中存在很多
xxxAutoConfiguration
文件(@Bean),这些类给容器中导入了这个场景需要的所有组件,并自动配置,@Configuration
,javaConfig
!。 - 有了自动配置类,不需要再进行手动编写配置文件。
SpringBoot的理解:
- 自动装配;
- run();
- 推断应用的类型,普通项目还是Web项目
- 查找并加载所有可用初始化器,设置到
initializers
(初始化器)属性中 - 找出所有应用程序监听器,设置到
listeners
属性中 - 推断并设置main方法的定义类,找到运行的主类
SpringBoot 配置
yaml可以直接给实体类赋值
精髓
- SpringBoot启动时会加载大量的自动配置类
- 查看需要的功能有没有在默认配置的自动配置类中
- 查看自动配置类中配置了哪些组件(如果组件存在其中就不需要手动配置)
- 给容器中自动配置类添加组件时,从properties中获取某些属性。只需要在配置文件中指定值即可
-
XXXXAutoConfigurartion
:自动配置类;给容器中添加组件 -
XXXXProperties
:封装配置文件中的相关属性。
-
SpringBoot Web开发
静态资源处理方法:
- webjars(最优先)
- url:
/webjars/
- 实际目录:
classpath:/META-INF/resources/webjars/
- url:
- 资源查找顺序
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
模板引擎
结论
导入相应依赖即可使用thymeleaf,将相应的网页放到thymeleaf文件夹下即可
public static final String DEFAULT_PREFIX = "classpath:/templates/";
public static final String DEFAULT_SUFFIX = ".html";
在Spring Boot中,有非常多的XXXXConfiguration 帮助我们进行扩展配置,只要看见了这个东西,就要注意了
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 深入理解类加载机制:拨开迷雾见真章
- 修复postgres安装错误 Problem running post-install step. Installation may not complete correctly The datab
- automagica 调用windows画图以及登录qq
- 数据库PostrageSQL-高级特性
- 数据库PostgreSQL-安装
- CentOS 7 安装 PHP 7.4.0 正式版
- ABAP实现设计模式里的观察者-发布者模式
- 如何在SAP S/4HANA里创建自定义的partner function
- Rust 往事 | Loop 和 While True 之争
- 数字成像系统概述
- 在SAP C4C里使用Restful服务消费SAP S/4HANA的标准功能
- SAP Spartacus里的StorefrontConfig静态类型
- SAP Spartacus B2cStorefrontModule.withConfig的实现
- SAP Spartacus 页面元数据
- leetcode-easy-array-合并两个有序数组