该笔记参照【狂神说Java】SpringBoot最新教程IDEA版通俗易懂完成,如有需要请自行观看。。。
相关素材已放百度网盘,如需,自取:
链接:https://pan.baidu.com/s/1waKyNJYCnHilTp6Q-PBa6g
提取码:selt
Spring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者:Rod Johnson。
Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。
为了降低Java开发的复杂性,Spring采用了以下四种关键策略:
1、基于POJO的轻量级和最小侵入性编程;
2、通过IOC,依赖注入(DI)和面向接口实现松耦合;
3、基于切面(AOP)和惯例进行声明式编程;
4、通过切面和模版减少样式代码;
SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
官方:提供了一个快速生成网站!IDEA集成了在这个网站!
springboot banner 换标志
https://www.bootschool.net/ascii/
在resource目录下新建banner.txt;
把自己喜欢的标志复制进去即可;、
当banner.txt文件图标出现与application.properties文件图标一样的角标时说明成功,重启即可。
自动配置:
pom.xml
启动器
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
启动器:说白了就是springboot的启动场景;
比如spring-boot-starter-web,他就会自动帮我们导入web环境所有的依赖;
springboot会将所有的功能场景,都变成一个个的启动器
我们要使用什么功能,就只需要找到对应的启动器就可以了starter
主程序
//@SpringBootApplication:标注这个类是一个springboot的应用
@SpringBootApplication
public class Springboot01HellowordApplication {
public static void main(String[] args) {
//将springboot应用启动
SpringApplication.run(Springboot01HellowordApplication.class, args);
}
}
注解:
@SpringBootConfiguration :springboot 的配置
@Configuration:spring配置类
@Component:说明这也是一个spring的组件
@EnableAutoConfiguration:自动配置
@AutoConfigurationPackage:自动配置包
@Import({
Registrar.class}):自动配置·包注册·
@Import({
AutoConfigurationImportSelector.class}):自动导入选择
//获取所有的配置
List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);
//获取候选的配置
protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {
List<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.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 :自动配置核心文件
结论:springboot所有自动配置都是在启动的时候扫描并加载:spring.factories 所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器了,有了启动器,我们自动装配就会生效,然后就配置成功!
1.springboot在启动的时候,从类路径下/META-INF/spring.factories获取指定的值;
2.将这些自动配置的类导入容器,自动配置就会生效,帮我进行自动配置!
3.以前我们需要自动配置的东西,现在springboot帮我们做了!
4.整合javaEE,解决方案和自动配置的东西都在spring-boot-autoconfigure-2.2.0.RELEASE.jar这个包下
5.它会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器;
6.容器中也会存在非常多的xxxAutoConfigration的文件(@Bean),就是这些类给容器中导入了这个场景需要的所有组件;并自动配置,@Configration,JavaConfig!
7.有了自动装配类,免去了我们手动编写配置文件的工作!