什么是spring boot?

java小课堂

分享人:许东杰

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

1.背景介绍

1.背景介绍


Spring Boot其设计目的是用来简化 Spring 应用的初始搭建开发以及部署过程。

springboot本质是对spring框架的再次封装,将原来的复杂的XML配置文件以及复杂的Bean依赖关系用JavaConfig配置类来进行替代

嵌入了Tomcat、jetty,可以直接启动web容器,集成了很多第三方技术

2.知识剖析

springboot中的装载bean或者加载配置的几种方式

1、用spring那个原来的xml配置文件

2、注解装载,主方法进行扫描

3、用配置类来加载配置,同时可以进行bean装载

springboot有关配置文件的注解:

@validated校验注解,放在类的上面,例如在类中的属性上加上@email,意思就是验证是否符合邮箱格式

@configurationProperties直接将主配置文件中的配置导入到类中

@value("")注入单个配置信息到属性上,单独使用

@propertysource(classpath:{})指定自己写的外部配置文件(区别于主配置文件),将数据注入进来

@importresource导入老版本的spring配置文件,让配置文件里面的内容生效,放到到主类上

springboot的依赖管理:

spring-boot-starter-parent是springboot的核心依赖,是所有依赖的父依赖,里面指定了很多依赖的版本,所以添加子依赖不需要写版本号

所有要添加的子依赖都以spring-boot-starter开头,子依赖中还有各自的子依赖

springboot 通过引用spring-boot-starter-web依赖,整合SpingMVC框架。只需要引用一个jar包,就可以通过Maven继承的方式引用到Spring-aop,Spring-beans,Spring-core,Spring-web等相关依赖

3.常见问题


springboot的打war包方式

4.解决方案

1、新加@ServletComponentScan注解,并且继承SpringBootServletInitializer。 2、打包方式改为war,spring-boot-starter-tomcat修改为 provided方式,以避免和独立 tomcat 容器的冲突. 表示provided 只在编译和测试的时候使用,打包的时候就没它了

5.编码实战

springboot项目的创建整合打包部署运行?

6.扩展思考

springboot的统一日志管理实现方式

1、原因:因为spring默认日志接口是common-logging,很多整合框架用的日志都不一样,所以要进行统一管理

2、解决:springboot默认使用slf4j日志接口,增加了中间层,访问其他日志api最终都归到slf4j接口里面了

springboot的自动配置原理

1、@SpringBootApplication,主方法注解是一个符合注解,里面包含了自动配置的注解@EnableAutoConfiguration,SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @ConfigurationProperties 等几个注解来进行自动配置完成的。 @EnableAutoConfiguration 开启自动配置,主要作用就是调用 Spring-Core 包里的 loadFactoryNames(),将 autoconfig 包里的已经写好的自动配置加载进来。 @Conditional 条件注解,通过判断类路径下有没有相应配置的 jar 包来确定是否加载和自动配置这个类。 @EnableConfigurationProperties 的作用就是,给自动配置提供具体的配置参数,只需要写在 application.properties 中,就可以通过映射写入配置类的 POJO 属性中。

7.参考文献


百度、谷歌

鸣谢

感谢观看,如有出错,恳请指正

BY :许东杰