博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot启动原理步骤分析
阅读量:4685 次
发布时间:2019-06-09

本文共 5051 字,大约阅读时间需要 16 分钟。

spring boot最重要的三个文件:1.启动类 2.pom.xml 3.application.yml配置文件

一.启动类->main方法

spring boot启动原理步骤分析

1.spring boot通过fat jar方式用jdk命令java -jar jarname.jar启动的。

fat jar就是包含被引用jar包的jar,因为会包含很多jar包,所以称为fat,肥胖。

 

2.spring  boot通过static void main方法启动,main方法是java程序总是最先运行的地方,这个是由jvm虚拟机决定的。任何java程序都是这样。

main方法启动,里面是调用SpringApplication.run(StrartApplication.class, args);

1)springApplication的run()方法的,springApplication类是spring boot的类,run方法负责启动spring boot,首先扫描这个main类

 

2)main类是有@EnableAutoConfiguration修饰的,main调用springapplication.run()方法让spring boot启动,这个注解开始起作用。

@EnableAutoConfiguration作用是:根据maven pom的配置,“猜测”你是哪种应用程序(本地还是web),根据猜测去创建程序的环境。也就是spring环境,或者spring mvc环境。猜测出来后,也就环境创建好了,也就是springmvc,spring,spring boot环境创建成功。

 

3)spring boot环境(spring,spring mvc)创建好并启动后,就可以扫描启动bean类了,将扫描到的启动bean注入到ioc容器中,

通过@ComponentScan(basePackages = "com.pxj.oversea.*"),指定要扫描的类路径。

也就是开机就要创建的bean,将这些bean注入到spring的ioc中,供后面程序使用。

 

4)至此spring完全启动成功,扫描了要自动启动注入的bean,ioc容器已完全可以用。

那么哪些类要spring自动扫描并注入呢?

答:当然是那些controller之类的啦,有@restcontroller修饰的类,要对外提供服务啊,最至关重要的东西,核心服务当然要程序启动时候就启动啊

 

至此,一个spring boot的启动类就创建了,代码如下:pom.xml

/** * project starter access * @author PANXUEJUN725 * */@EnableAutoConfiguration@ComponentScan(basePackages = "com.pxj.oversea.*")public class StrartApplication {    public static void main(String[] args) {        SpringApplication.run(StrartApplication.class, args);    }}

spring boot最重要的pom配置如下:

4.0.0
com.pxj.demo
pxj-oversea
1.0-SNAPSHOT
jar
pxj-oversea
http://maven.apache.org
org.springframework.boot
spring-boot-parent
1.5.1.RELEASE
UTF-8
1.8
true
UTF-8
com.alibaba
druid
1.0.28
com.fasterxml.jackson.core
jackson-databind
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.2.0
com.oracle
ojdbc7
12.1.0.1.0
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
org.springframework.boot
spring-boot-starter
1.5.1.RELEASE
org.springframework.boot
spring-boot-starter-logging
org.springframework.boot
spring-boot-starter-log4j2
1.5.1.RELEASE
com.alibaba
fastjson
1.2.31
org.springframework.boot
spring-boot-starter-aop
1.5.1.RELEASE
central
Central
http://maven.paic.com.cn/repository/maven-public/
spring-milestones
spring-milestones
http://maven.paic.com.cn/repository/maven-public/
org.springframework.boot
spring-boot-maven-plugin
1.5.1.RELEASE
repackage
clean install package

spring boot的配置文件application.properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driverClassName=oracle.jdbc.OracleDriverspring.datasource.url= jdbc:oracle:thin:pa18data/pa182007@10.20.128.181:1526:d0pa18

  

 

转载于:https://www.cnblogs.com/panxuejun/p/6710849.html

你可能感兴趣的文章
Android Studio之could not reserve enough space for object heap
查看>>
pass
查看>>
给自己网站配置 https,http2 ,gzip压缩
查看>>
Linux发展历程
查看>>
centos7.3下curl支持https协议
查看>>
ASPCMS 标签
查看>>
《C++ Primer 4th》读书笔记 第12章-类
查看>>
Mac下搭建Apache+PHP+MySql运行环境
查看>>
WCF消息传递
查看>>
测试准入准出标准
查看>>
区块链学习笔记01(基本介绍)
查看>>
[树形dp] 洛谷 P2634 聪聪可可
查看>>
The version of SQL Server in use does not support datatype 'datetime2' 解决办法
查看>>
JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)...
查看>>
DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版
查看>>
Java中的ReentrantLock和synchronized两种锁定机制的对比
查看>>
MySQL锁之二:锁相关的配置参数
查看>>
作品汇总和进度表
查看>>
2018-2019-1 20165301 《信息安全系统设计基础》第五周学习总结
查看>>
EF多个表映射
查看>>