SpringBoot 依赖管理和自动配置---带你了解什么是版本仲裁(下)

简介: SpringBoot 依赖管理和自动配置---带你了解什么是版本仲裁(下)

fca2ec66dd0650651e71db153fadadb3.png自动配置💕


自动配置基本介绍


  1. 学习SSM 整合时,需要配置Tomcat 、配置SpringMVC、配置如何扫描包、配置字符过滤器、配置视图解析器、文件上传等[如图],非常麻烦。而在SpringBoot 中,存在自动配置机制(就是前面的约定优于配置),提高开发效率
    2.简单回顾以前SSM 整合的配置.

2ab427e9a008a54013e74f5f8b3db1a6.png

b5713cbdd824d652b2d99281d7eb971c.png


SpringBoot 自动配置了哪些?


  1. 自动配置Tomcat

e61306b626344837fe72c071938639f1.png

  1. 自动配置SpringMVC

2a7facf29b54144794931779fe97b0b0.png


  1. 自动配置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);
        }
    }
}

fca2ec66dd0650651e71db153fadadb3.png

-------更加直接查看的方式debug-------

127db3f129f8c41d3a9d29a97c39d2d7.png


自动配置: 默认扫描包结构!!! ,

官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.structuring-your-code.using-the-default-package


b4a07baad356a530521fe7422e6da1a5.png


如何修改默认配置


如何修改默认扫描包结构


  1. 需求:要求能扫描com.nlc包下的HiController.java 应该如何处理?
  2. 创建: quickstart\src\main\java\com\nlc\HiController.java, 并测试,这时是访问不到的.
@Controller
public class HiController {
    //返回hi,springboot
    @RequestMapping("/hi")
    @ResponseBody
    public String hi() {
        return "hi~, SpringBoot";
    }
}


  1. 修改MainApp.java, 增加扫描的包, 并完成测试.
// 直接在SpringBootApplication 注解后指定扫描包名
@SpringBootApplication(scanBasePackages = "com.nlc")
//@SpringBootApplication(scanBasePackages = "com.nlc")指定扫描哪个包及其子包
public class MainApp {
    //.....
}


resources\application.properties 配置大全


SpringBoot 项目最重要也是最核心的配置文件就是application.properties,所有的框架配置都可以在这个配置文件中说明

地址: application.properties配置大全

因为配置代码篇幅过长,影响本篇博文整体阅读,因此单独发表一篇文章方便大家观看,希望能够帮助到您😊SpringBoot 自动配置–常用配置


自动配置遵守按需加载原则💕


基本说明

  1. 自动配置遵守按需加载原则:也就是说,引入了哪个场景starter 就会加载该场景关联的jar 包,没有引入的starter 则不会加载其关联jar

dfe6ad264fa1099dfc683bc9eeee5ed4.png

  1. SpringBoot 所有的自动配置功能都在spring-boot-autoconfigure 包里面

406543b7fd8846a96665223c0c244d58.png

  1. 在SpringBoot 的自动配置包, 一般是XxxAutoConfiguration.java, 对应XxxxProperties.java, 如图

1f0bc144d4b4d70560a812eea9c560c6.png


实例演示


以MultipartProperties , MultipartAutoConfiguration 和application.properties 来说明,用debug的形式查看


33fec067729ff62dc1873f892e22b3b7.png

386cbb76e9883bde550d3b6f818f288c.png


😄总结


版本仲裁:如果程序员没有指定某个依赖jar 的版本,则以父项目指定的版本为准

修改pom.xml 配置时, 需要刷新Maven ,否则无法识别

SpringBoot 支持第三方starter。第三方starter命名 不从spring-boot 开始,因为官方starter命名以spring-boot 开头。


文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁

希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻

如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

相关文章
|
1月前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
1月前
|
Java 调度 Spring
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
284 0
|
2月前
|
druid Java 数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
81 0
|
1月前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
3天前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
10 1
|
5天前
|
Java 文件存储 Spring
【springboot】logback配置
【springboot】logback配置
17 1
|
11天前
|
Java 微服务 Spring
Spring Boot中获取配置参数的几种方法
Spring Boot中获取配置参数的几种方法
21 2
|
13天前
|
Web App开发 前端开发 Java
SpringBoot配置HTTPS及开发调试
在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享
20 0
SpringBoot配置HTTPS及开发调试
|
16天前
|
存储 Java 数据库
SpringBoot使用jasypt实现数据库配置加密
这样,你就成功地使用Jasypt实现了Spring Boot中的数据库配置加密,确保敏感信息在配置文件中以加密形式存储,并在应用启动时自动解密。
46 2
|
1月前
|
Java Shell 测试技术
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
40 0
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析