【SpringBoot 2】(三)SpringBoot相较于Spring的特点

举报
扎哇太枣糕 发表于 2022/06/15 11:44:27 2022/06/15
【摘要】 ​ ​编辑🛫更多知识总结见SpringBoot 2专栏🚕本篇知识点总结自尚硅谷雷神的视频🚒博主对于该知识尚在学习阶段🚄如果发现存在问题请毫不吝啬的指出🚀🚀扎哇太枣糕的博客主页🚀🚀目录1 起步依赖1.1 starter场景启动器1.2 父项目作依赖管理2 自动配置2.1 自动配置Tomcat服务器2.2 自动配置web开发场景、SpringMVC组件2.3 默认的包注解扫描规则...

 编辑🛫更多知识总结见SpringBoot 2专栏

🚕本篇知识点总结自尚硅谷雷神的视频

🚒博主对于该知识尚在学习阶段

🚄如果发现存在问题请毫不吝啬的指出

🚀🚀扎哇太枣糕的博客主页🚀🚀

目录

1 起步依赖

1.1 starter场景启动器

1.2 父项目作依赖管理

2 自动配置

2.1 自动配置Tomcat服务器

2.2 自动配置web开发场景、SpringMVC组件

2.3 默认的包注解扫描规则

2.4 默认的配置属性值

2.5 按需加载所有的自动配置项


1 起步依赖

1.1 starter场景启动器

        在依赖导入这一方面,SpringBoot区别于Spring的就是,Spring在pom.xml文件中手动导入所有的依赖包括版本号,而SpringBoot只需要在项目的pom.xml文件中导入spring-boot-starter-web即可将编写一个web应用所需要的所有的jar包自动加载完成,且使用默认的版本号避免不同技术的各个版本之间出现相互冲突问题。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

1.2 父项目作依赖管理

        每一个SpringBoot项目中都会继承自一个父项目,父项目中会定义好所有的依赖以及版本号,子项目继承父项目之后再导入依赖就可以不用去声明版本号。

        以入门案例为例,该案例项目继承自如下父项目

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.4.RELEASE</version>
</parent>

        这个父项目项目又继承自另一个父项目,在这个父项目中几乎定义了所有可能会用的到的依赖,并对所有的进行了版本仲裁,如果想要修改某个依赖版本的话就在pom.xml文件中使用properties标签对版本号进行再次定义,因为maven依赖版本号采取的是就近原则。

编辑

2 自动配置

2.1 自动配置Tomcat服务器

        在前面的starter场景启动器中,底层已经导入了Tomcat的依赖,并对Tomcat服务器进行了配置。编辑

2.2 自动配置web开发场景、SpringMVC组件

        starter场景启动器的底层也导入了web和SpringMVC需要的依赖,并对常用的组件进行了配置。

编辑

        具体组件(编码过滤器、前端控制器dispatcherservlet……)的查看可以借助IOC容器的相关API进行获取

编辑

2.3 默认的包注解扫描规则

        主程序(MainApplication)所在的包及这个包的所有子包都会被扫描到,其他位置的类都将不会被扫描到。这是SpringBoot设置的默认规则,我们也可以使用如下属性人为指定包注解扫描的范围。

编辑

其中@SpringBootApplication是一个合成注解,还可以将其拆开使用其中的@ComponentScan注解指定需要扫描的包

编辑

2.4 默认的配置属性值

        SpringBoot为了简便开发,将Spring配置文件中的所有配置都设置了一个默认的值,而这些配置都映射到一个java类,类中将所有的配置都对应封装到一个private属性并赋予默认值,在容器加载的时候创建相应java类的对象使其起作用。自己创建的配置文件设置值时,会调用封装属性的setter方法修改对应类中的属性值。

        以Tomcat服务器的配置为例

编辑

2.5 按需加载所有的自动配置项

        SpringBoot中所有的自动配置功能都在spring-boot-autoconfigure这个包中,包中有SpringBoot所有的starter,但是并不会直接加载全部的starter而是采用自动配置,所谓的自动配置就是导入哪个依赖加载哪个。

   

上一篇:【SpringBoot 2】快速入门案例HelloWorld

下一篇:【SpringBoot 2】SpringBoot相较于Spring的特点

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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