网站开发优势,湛江制作网站多少钱,html5网页设计软件,自己怎样做免费网站#x1f600;前言 本篇博文是关于SpringBoot 依赖管理和自动配置#xff0c;希望能够帮助到您#x1f60a; #x1f3e0;个人主页#xff1a;晨犀主页 #x1f9d1;个人简介#xff1a;大家好#xff0c;我是晨犀#xff0c;希望我的文章可以帮助到大家#xff0c;您… 前言 本篇博文是关于SpringBoot 依赖管理和自动配置希望能够帮助到您 个人主页晨犀主页 个人简介大家好我是晨犀希望我的文章可以帮助到大家您的满意是我的动力 欢迎大家这里是CSDN我总结知识的地方欢迎来到我的博客感谢大家的观看 如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦 文章目录 SpringBoot 依赖管理和自动配置依赖管理什么是依赖管理修改自动仲裁/默认版本号 starter 场景启动器starter 场景启动器基本介绍官方提供的starter介绍 第三方starter 自动配置自动配置基本介绍SpringBoot 自动配置了哪些?如何修改默认配置如何修改默认扫描包结构resources\application.properties 配置大全 自动配置遵守按需加载原则基本说明实例演示 总结 SpringBoot 依赖管理和自动配置
依赖管理
什么是依赖管理 spring-boot-starter-parent 还有父项目, 声明了开发中常用的依赖的版本号 并且进行自动版本仲裁, 即如果程序员没有指定某个依赖jar 的版本则以父项目指定的版本为准 修改自动仲裁/默认版本号
需求说明: 将SpringBoot mysql 驱动修改成5.1.49 查看spring-boot-dependencies.pom 里面规定当前依赖的版本对应的key , 这里是 mysql.version 修改quickstart\pom.xml 重写配置, 当更新Maven 时就依赖到新的 mysql 驱动. !--我们自己指定mysql/驱动版本- 修改版本仲裁--!-- 1. 方式1:显示的导入mysql依赖, 并明确的指定version --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.49/version/dependency!-- 2. 方式2.在自己的pom.xml文件中, 在properties 中指定mysql的key如 propertiesmysql.version5.1.49/mysql.version/properties3. 为什么可以达到修改版本仲裁: 根据依赖就近优先原则.--版本仲裁就是比如他里面有个父项目配置了大多数可能需要的jar默认指定了每一个jar版本。如果本工程配置了就采用本工程的配置没有就找到父项目的配置。
starter 场景启动器
starter 场景启动器基本介绍
开发中我们引入了相关场景的starter这个场景中所有的相关依赖都引入进来了比如我们做web 开发引入了该starter 将导入与web 开发相关的所有包 !--导入web项目场景启动器: 会自动导入和web开发相关的所有依赖[库/jar]非常方便--dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency依赖树: 可以看到spring-boot-starter-web 帮我们引入了spring-webmvcspring-web开发模块还引入了spring-boot-starter-tomcat 场景spring-boot-starter-json 场景这些场景下面又引入了一大堆相关的包这些依赖项可以快速启动和运行一个项目提高开发效率. 所有场景启动器最基本的依赖就是spring-boot-starter , 前面的依赖树分析可以看到,这个依赖也就是SpringBoot 自动配置的核心依赖 官方提供的starter
地址:https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters
介绍 在开发中我们经常会用到spring-boot-starter-xxx 比如spring-boot-starter-web该场景是用作web 开发也就是说xxx 是某种开发场景。 我们只要引入starter这个场景的所有常规需要的依赖我们都自动引入。 SpringBoot2 支持的所有场景如下: https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters 第三方starter
SpringBoot 也支持第三方starter。第三方starter 不要从spring-boot 开始因为这是官方spring-boot 保留的命名方式的。第三方启动程序通常以项目名称开头。例如名为thirdpartyproject 的第三方启动程序项目通常被命名为thirdpartyproject-spring-boot-starter。也就是说xxx-spring-boot-starter 是第三方为我们提供的简化开发的场景启动器。
自动配置
自动配置基本介绍 学习SSM 整合时需要配置Tomcat 、配置SpringMVC、配置如何扫描包、配置字符过滤器、配置视图解析器、文件上传等[如图]非常麻烦。而在SpringBoot 中存在自动配置机制就是前面的约定优于配置提高开发效率 2.简单回顾以前SSM 整合的配置. SpringBoot 自动配置了哪些? 自动配置Tomcat 自动配置SpringMVC 自动配置Web 常用功能: 比如字符过滤器, 提示: 通过获取ioc 容器查看容器创建的组件来验证,
修改quickstart\src\main\java\com\nlc\springboot\MainApp.java
SpringBootApplication
public class MainApp {public static void main(String[] args) {//启动springboot应用程序/项目ConfigurableApplicationContext ioc SpringApplication.run(MainApp.class, args);//如何查看容器中注入的组件String[] beanDefinitionNames ioc.getBeanDefinitionNames();for (String beanDefinitionName : beanDefinitionNames) {System.out.println(beanDefinitionName-- beanDefinitionName);}}
}-------更加直接查看的方式debug------- 自动配置: 默认扫描包结构!!!
官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.structuring-your-code.using-the-default-package 如何修改默认配置
如何修改默认扫描包结构
需求要求能扫描com.nlc包下的HiController.java 应该如何处理?创建: quickstart\src\main\java\com\nlc\HiController.java, 并测试这时是访问不到的.
Controller
public class HiController {//返回hi,springbootRequestMapping(/hi)ResponseBodypublic String hi() {return hi~, SpringBoot;}
}修改MainApp.java, 增加扫描的包, 并完成测试.
// 直接在SpringBootApplication 注解后指定扫描包名
SpringBootApplication(scanBasePackages com.nlc)
//SpringBootApplication(scanBasePackages com.nlc)指定扫描哪个包及其子包
public class MainApp {//.....
}resources\application.properties 配置大全
SpringBoot 项目最重要也是最核心的配置文件就是application.properties所有的框架配置都可以在这个配置文件中说明地址: application.properties配置大全
因为配置代码篇幅过长影响本篇博文整体阅读因此单独发表一篇文章方便大家观看希望能够帮助到您SpringBoot 自动配置–常用配置
自动配置遵守按需加载原则
基本说明
自动配置遵守按需加载原则也就是说引入了哪个场景starter 就会加载该场景关联的jar 包没有引入的starter 则不会加载其关联jar SpringBoot 所有的自动配置功能都在spring-boot-autoconfigure 包里面 在SpringBoot 的自动配置包, 一般是XxxAutoConfiguration.java, 对应XxxxProperties.java, 如图 实例演示
以MultipartProperties , MultipartAutoConfiguration 和application.properties 来说明用debug的形式查看 总结
版本仲裁如果程序员没有指定某个依赖jar 的版本则以父项目指定的版本为准修改pom.xml 配置时, 需要刷新Maven 否则无法识别SpringBoot 支持第三方starter。第三方starter命名 不从spring-boot 开始因为官方starter命名以spring-boot 开头。
热门专栏推荐 SpringBoot篇 Spring Boot介绍–快速入门–约定优于配置 SpringBoot 自动配置–常用配置 文章到这里就结束了如果有什么疑问的地方请指出诸大佬们一起来评论区一起讨论 希望能和诸大佬们一起努力今后我们一起观看感谢您的阅读 如果帮助到您不妨3连支持一下创造不易您们的支持是我的动力