springboot学习【奔跑吧!JAVA】

举报
多米诺的古牌 发表于 2021/06/09 17:49:45 2021/06/09
【摘要】 1.springboot定义springboot是一个开源框架,中心思想是自动配置,简化开发。他是为了将spring中各种繁复的配置进行简化,以约定大于配置的理念进行了一系列的封装,并且通过依赖注入等实现高内聚低耦合的结构。由于框架里面内嵌了tomcat等一系列的容器,集成了大量常用的第三方类库,提供了各种默认配置来简化项目的开发配置工作,让开发人员不用将过多精力都浪费在配置各种xml中,达...

1.springboot定义

springboot是一个开源框架,中心思想是自动配置,简化开发。他是为了将spring中各种繁复的配置进行简化,以约定大于配置的理念进行了一系列的封装,并且通过依赖注入等实现高内聚低耦合的结构。由于框架里面内嵌了tomcat等一系列的容器,集成了大量常用的第三方类库,提供了各种默认配置来简化项目的开发配置工作,让开发人员不用将过多精力都浪费在配置各种xml中,达到了开箱即用的开发模式。

2.springboot的创建

2.1可以通过官网进行创建,Quick start模块进行快速搭建springboot项目

2.2 可以通过IDE(以IDEA为例)中的spring initializr模块进行快速搭建springboot项目

2.2.1 选择jdk版本,并且选择通过官网还是其他镜像网址进行搭建

2.2.2 按照需求设置组、版本、打包类型、java的版本

2.2.3 勾选需要的模块,一般web项目就勾选web就行了

2.2.4 完成springboot项目的创建

其中@springBootApplication注解的是标记主启动项,可以看出底层还是spring的@component组件进行注解的。

可以看出springboot项目的主要结构:是一个程序的主启动类、一个 application.properties或者application.yml配置文件进行项目个性化配置、一个依赖配置文件pom.xml进行依赖和插件的管理、测试类进行测试和若干业务代。

pom.xml依赖配置文件中首先能够看到的是<parent></parent>父依赖,里面集成了一系列第三方类库包括内嵌的tomcat容器,disparcherServlet控制、xml整合等默认配置的处理,其中spring-boot-dependencies是对核心依赖的版本控制,因此依赖中可以不用写版本号,还有资源过滤控制等,group、artifactId和version组成了项目的专属坐标,dependencies中就是项目所需的依赖管理,比如spring-boot-starter-web是web项目的核心依赖,spring-boot-starter-test是测试类的核心依赖等,plugins是插件的管理部分比如打包插件spring-boot-maven-plugin。。。

其中springboot banner定制启动头部的展示图画通过在resources中创建banner.txt将需要设置的图画或者文字复制进去重启项目就可以实现变更。

2.2.5 自动装配

首先通过扫描加载,导入启动类下的所有配置的依赖资源,即自动配置核心文件的中的自动装配的资源,路径是org.springframework.boot.autoconfigure包下的配置项中的META-INF/spring.factories,再通过一系列方法将里面的自动配置类遍历出来封装到Properties中,因为导入了这么多不可能全部都使用,在对应的自动配置类中XXXautoConfiguration中有个核心注解@ConditionalOnXXX,如@ConditionalOnClass里面有一些条件只有全部条件都满足才会生效完成启动。而如何满足条件?主要是通过依赖中的start启动项进行启动的,即在pom.xml中配置了start-XXX的依赖,就会完成启动这个启动器的配置,让他可以满足启动条件,进行启动加载,完成他的自动装配。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。