Spring Boot 框架学习(一)
1.Springboot介绍
Spring boot是由Pivotal团队提供的框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,创建出独立运行和产品级别的基于spring框架的应用。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,大大提升使用spring框架时的开发效率。
Spring boot 包含如下特性:
- 可以将应用打包成独立可运行的JAR或WAR,使用 java -jar 命令来启动应用
- 内嵌 Tomcat或者Jetty服务器,无需独立的应用服务器
- 提供基础的POM文件来简化 Apache Maven配置
- 根据项目依赖自动配置。
- 没有Java Config代码和XML配置文件
2.创建Spring Boot项目
打开IDEA 新建项目 选择Spring Initializr 之后点击Next
- 输入Group和Artifact名称(如有需要可自行修改相关参数)
- 点击Next (可根据自己需要配置)个人习惯什么都不选
- 输入项目名称和项目路径
- 点击finish 自动创建项目
因为是Maven工程,需要配置settings.xml,我这里用的是阿里云镜像。
在idea–settings找到Maven,自行配置相关文件参数
之后可以重新导入依赖。点击项目名称选择Maven–Reimport
自此Spring Boot项目就创建好了。
3.Spring Boot 应用启动
Spring Boot应用可以有多种启动方式来应对不同的使用场景
1.main方法启动
在创建Spring Boot项目的时候,工具自动生成了一个类,
例如:
package cn.zl.java;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("cn.zl.java.mapper")
public class EshopApplication {
public static void main(String[] args) { SpringApplication.run(EshopApplication.class, args);
}
}
这个类中只有一个main方法,这个main方法中使用了SpringApplication的run方法来加载整个spring 应用,run方法的第一个参数是EshopApplication.class,第二个是main方法传入进来的args。
run方法执行的时候,会探测到 EshopApplication类上的@SpringBootApplication这个annotation,正是这个annotation才做到了自动配置,它会启动Spring容器,然后自动扫描加载应用中定义的bean,自动配置Spring MVC,启动内置的Servelt容器,默认是Tomcat。
项目启动后:
- SpringApplication实例run方法
SpringApplication对象创建并初始化后,调用run方法来完成Spring容器的创建.这个方法完成了如下工作:
- 加载SpringApplicationRunListener
SpringApplicationRunListeners对象可以在SpringApplication对象的run方法执行的不同阶段,去执行一些操作,并且这些操作是可配置的。与加载ApplicationContextInitializer和ApplicationListener一样,加载了什么,可以从Spring-boot-1.5.4.RELEASE.jar/META-INF/spring.factories文件中看到。
2.启动SpringApplicationRunListener监听器
-boot-1.5.4.RELEASE.jar/META-INF/spring.factories文件中看到。
2.启动SpringApplicationRunListener监听器
一旦SpringApplicationRunListener开始启动,就会激发应用程序开始启动的事件,那么先前准备好的ApplicationListener中有一个ConfigFileApplicationListener它便开工作,加载应用的配置文件,这个配置文件的名称默认为 application.properties或者 application.yml
转载:https://blog.csdn.net/weixin_42174239/article/details/104542366